DIRECTINPUT_VERSION = $700
MAX_PATH = 260

interface IDirectInputDeviceW,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  GetCapabilities,\
	  EnumObjects,\
	  GetProperty,\
	  SetProperty,\
	  Acquire,\
	  Unacquire,\
	  GetDeviceState,\
	  GetDeviceData,\
	  SetDataFormat,\
	  SetEventNotification,\
	  SetCooperativeLevel,\
	  GetObjectInfo,\
	  GetDeviceInfo,\
	  RunControlPanel,\
	  Initialize

interface IDirectInputDeviceA,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  GetCapabilities,\
	  EnumObjects,\
	  GetProperty,\
	  SetProperty,\
	  Acquire,\
	  Unacquire,\
	  GetDeviceState,\
	  GetDeviceData,\
	  SetDataFormat,\
	  SetEventNotification,\
	  SetCooperativeLevel,\
	  GetObjectInfo,\
	  GetDeviceInfo,\
	  RunControlPanel,\
	  Initialize

interface IDirectInputEffect,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  Initialize,\
	  GetEffectGuid,\
	  GetParameters,\
	  SetParameters,\
	  Start,\
	  Stop,\
	  GetEffectStatus,\
	  Download,\
	  Unload,\
	  Escape

interface IDirectInputDevice7W,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  GetCapabilities,\
	  EnumObjects,\
	  GetProperty,\
	  SetProperty,\
	  Acquire,\
	  Unacquire,\
	  GetDeviceState,\
	  GetDeviceData,\
	  SetDataFormat,\
	  SetEventNotification,\
	  SetCooperativeLevel,\
	  GetObjectInfo,\
	  GetDeviceInfo,\
	  RunControlPanel,\
	  Initialize,\
	  CreateEffect,\
	  EnumEffects,\
	  GetEffectInfo,\
	  GetForceFeedbackState,\
	  SendForceFeedbackCommand,\
	  EnumCreatedEffectObjects,\
	  Escape,\
	  Poll,\
	  SendDeviceData,\
	  EnumEffectsInFile,\
	  WriteEffectToFile

interface IDirectInputDevice7A,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  GetCapabilities,\
	  EnumObjects,\
	  GetProperty,\
	  SetProperty,\
	  Acquire,\
	  Unacquire,\
	  GetDeviceState,\
	  GetDeviceData,\
	  SetDataFormat,\
	  SetEventNotification,\
	  SetCooperativeLevel,\
	  GetObjectInfo,\
	  GetDeviceInfo,\
	  RunControlPanel,\
	  Initialize,\
	  CreateEffect,\
	  EnumEffects,\
	  GetEffectInfo,\
	  GetForceFeedbackState,\
	  SendForceFeedbackCommand,\
	  EnumCreatedEffectObjects,\
	  Escape,\
	  Poll,\
	  SendDeviceData,\
	  EnumEffectsInFile,\
	  WriteEffectToFile


interface IDirectInputDevice8W,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  GetCapabilities,\
	  EnumObjects,\
	  GetProperty,\
	  SetProperty,\
	  Acquire,\
	  Unacquire,\
	  GetDeviceState,\
	  GetDeviceData,\
	  SetDataFormat,\
	  SetEventNotification,\
	  SetCooperativeLevel,\
	  GetObjectInfo,\
	  GetDeviceInfo,\
	  RunControlPanel,\
	  Initialize,\
	  CreateEffect,\
	  EnumEffects,\
	  GetEffectInfo,\
	  GetForceFeedbackState,\
	  SendForceFeedbackCommand,\
	  EnumCreatedEffectObjects,\
	  Escape,\
	  Poll,\
	  SendDeviceData,\
	  EnumEffectsInFile,\
	  WriteEffectToFile,\
	  BuildActionMap,\
	  SetActionMap,\
	  GetImageInfo

interface IDirectInputDevice8A,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  GetCapabilities,\
	  EnumObjects,\
	  GetProperty,\
	  SetProperty,\
	  Acquire,\
	  Unacquire,\
	  GetDeviceState,\
	  GetDeviceData,\
	  SetDataFormat,\
	  SetEventNotification,\
	  SetCooperativeLevel,\
	  GetObjectInfo,\
	  GetDeviceInfo,\
	  RunControlPanel,\
	  Initialize,\
	  CreateEffect,\
	  EnumEffects,\
	  GetEffectInfo,\
	  GetForceFeedbackState,\
	  SendForceFeedbackCommand,\
	  EnumCreatedEffectObjects,\
	  Escape,\
	  Poll,\
	  SendDeviceData,\
	  EnumEffectsInFile,\
	  WriteEffectToFile,\
	  BuildActionMap,\
	  SetActionMap,\
	  GetImageInfo

interface IDirectInputW,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  CreateDevice,\
	  EnumDevices,\
	  GetDeviceStatus,\
	  RunControlPanel,\
	  Initialize

interface IDirectInputA,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  CreateDevice,\
	  EnumDevices,\
	  GetDeviceStatus,\
	  RunControlPanel,\
	  Initialize

interface IDirectInput7W,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  CreateDevice,\
	  EnumDevices,\
	  GetDeviceStatus,\
	  RunControlPanel,\
	  Initialize,\
	  FindDevice,\
	  CreateDeviceEx

interface IDirectInput7A,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  CreateDevice,\
	  EnumDevices,\
	  GetDeviceStatus,\
	  RunControlPanel,\
	  Initialize,\
	  FindDevice,\
	  CreateDeviceEx

interface IDirectInput8W,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  CreateDevice,\
	  EnumDevices,\
	  GetDeviceStatus,\
	  RunControlPanel,\
	  Initialize,\
	  FindDevice,\
	  EnumDevicesBySemantics,\
	  ConfigureDevices

interface IDirectInput8A,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  CreateDevice,\
	  EnumDevices,\
	  GetDeviceStatus,\
	  RunControlPanel,\
	  Initialize,\
	  FindDevice,\
	  EnumDevicesBySemantics,\
	  ConfigureDevices

;DIBUTTON_ANY(instance)                  (  = $FF004400 | instance )
macro DIBUTTON_ANY instance {
      VALUE = $FF004400 or instance
}

;CLSID_DirectInput GUID <$25E609E0>,<$B259>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;CLSID_DirectInputDevice GUID <25E609E1>,<$B259>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;CLSID_DirectInput8 GUID <$25E609E4>,<$B259>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;CLSID_DirectInputDevice8 GUID <$25E609E5>,<$B259>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInputA GUID <$89521360>,<$AA8A>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInputW GUID <$89521361>,<$AA8A>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInput2A GUID <$5944E662>,<$AA8A>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInput2W GUID <$5944E663>,<$AA8A>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInput7A GUID <$9A4CB684>,<$236D>,<$11D3>,<$8E,$9D,$00,$C0,$4F,$68,$44,$AE>
;IID_IDirectInput7W GUID <$9A4CB685>,<$236D>,<$11D3>,<$8E,$9D,$00,$C0,$4F,$68,$44,$AE>
;IID_IDirectInput8A GUID <$BF798030>,<$483A>,<$4DA2>,<$AA,$99,$5D,$64,$ED,$36,$97,0>
;IID_IDirectInput8W GUID <$BF798031>,<$483A>,<$4DA2>,<$AA,$99,$5D,$64,$ED,$36,$97,0>
;IID_IDirectInputDeviceA GUID <$5944E680>,<$C92E>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;IID_IDirectInputDeviceW GUID <$5944E681>,<$C92E>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInputDevice2A GUID <$5944E682>,<$C92E>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInputDevice2W GUID <$5944E683>,<$C92E>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,$00,$00>
;IID_IDirectInputDevice7A GUID <$57D7C6BC>,<$2356>,<$11D3>,<$8E,$9D,$00,$C0,$4F,$68,$44,$AE>
;IID_IDirectInputDevice7W GUID <$57D7C6BD>,<$2356>,<$11D3>,<$8E,$9D,$00,$C0,$4F,$68,$44,$AE>
;IID_IDirectInputDevice8A GUID <$54D41080>,<$DC15>,<$4833>,<$A4,$1B,$74,$8F,$73,$A3,$81,$79>
;IID_IDirectInputDevice8W GUID <$54D41081>,<$DC15>,<$4833>,<$A4,$1B,$74,$8F,$73,$A3,$81,$79>
;IID_IDirectInputEffect GUID <$E7E1F7C0>,<$88D2>,<$11D0>,<$9A,$D0,$00,$A0,$C9,$A0,$6E,$35>

;GUID_XAxis GUID <$A36D02E0>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_YAxis GUID <$A36D02E1>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_ZAxis GUID <$A36D02E2>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_RxAxis GUID <$A36D02F4>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_RyAxis GUID <$A36D02F5>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_RzAxis GUID <$A36D02E3>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_Slider GUID <$A36D02E4>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_Button GUID <$A36D02F0>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_Key GUID <$55728220>,<$D33C>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_POV GUID <$A36D02F2>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_Unknown GUID <$A36D02F3>,<$C9F3>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_SysMouse GUID <$6F1D2B60>,<$D5A0>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_SysKeyboard GUID <$6F1D2B61>,<$D5A0>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_Joystick GUID <$6F1D2B70>,<$D5A0>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_SysMouseEm GUID <$6F1D2B80>,<$D5A0>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_SysMouseEm2    <$6F1D2B81>,<$D5A0>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_SysKeyboardEm, <$6F1D2B82>,<$D5A0>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_SysKeyboardEm2,<$6F1D2B83>,<$D5A0>,<$11CF>,<$BF,$C7,$44,$45,$53,$54,0,0>
;GUID_ConstantForce, <$13541C20>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_RampForce,     <$13541C21>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_Square,        <$13541C22>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_Sine,          <$13541C23>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_Triangle,      <$13541C24>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_SawtoothUp,    <$13541C25>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_SawtoothDown,  <$13541C26>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_Spring,        <$13541C27>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_Damper,        <$13541C28>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_Inertia,       <$13541C29>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_Friction,      <$13541C2A>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>
;GUID_CustomForce,   <$13541C2B>,<$8E33>,<$11D0>,<$9A,$D0,0,$A0,$C9,$A0,$6E,$35>

DIEFT_ALL = $0
DIEFT_CONSTANTFORCE = 1
DIEFT_RAMPFORCE = 2
DIEFT_PERIODIC = 3
DIEFT_CONDITION = 4
DIEFT_CUSTOMFORCE = 5
DIEFT_HARDWARE = $FF
DIEFT_FFATTACK = $200
DIEFT_FFFADE = $400
DIEFT_SATURATION = $800
DIEFT_POSNEGCOEFFICIENTS = $1000
DIEFT_POSNEGSATURATION = $2000
DIEFT_DEADBAND = $4000
DIEFT_STARTDELAY = $8000

DI_DEGREES = 100
DI_FFNOMINALMAX = 10000
DI_SECONDS = 1000000


struct DICONSTANTFORCE
       lMagnitude dd ?
ends

struct DIRAMPFORCE
       lStart dd ?
       lEnd dd ?
ends

struct DIPERIODIC
       dwMagnitude dd ?
       lOffset dd ?
       dwPhase dd ?
       dwPeriod dd ?
ends

struct DICONDITION
       lOffset dd ?
       lPositiveCoefficient dd ?
       lNegativeCoefficient dd ?
       dwPositiveSaturation dd ?
       dwNegativeSaturation dd ?
       lDeadBand dd ?
ends

struct DICUSTOMFORCE
       cChannels dd ?
       dwSamplePeriod dd ?
       cSamples dd ?,?
       rglForceData dq ?
ends

struct DIENVELOPE
       dwSize dd ?
       dwAttackLevel dd ?
       dwAttackTime dd ?
       dwFadeLevel dd ?
       dwFadeTime dd ?
ends

struct DIEFFECT
       dwSize dd ?
       dwFlags dd ?
       dwDuration dd ?
       dwSamplePeriod dd ?
       dwGain dd ?
       dwTriggerButton dd ?
       dwTriggerRepeatInterva dd ?
       cAxes dd ?
       rgdwAxes dq ?
       rglDirection dq ?
       lpEnvelope dq ?
       cbTypeSpecificParams dd ?,?
       lpvTypeSpecificParams dq ?
       dwStartDelay dd ?,?
ends

struct DIFILEEFFECT
       dwSize dd ?
       GuidEffect GUID
       pad1 dd ?
       lpDiEffect dq ?
       szFriendlyName db MAX_PATH+4 dup(?)
ends


DIEFF_OBJECTIDS = 1
DIEFF_OBJECTOFFSETS = 2
DIEFF_CARTESIAN = $10
DIEFF_POLAR = $20
DIEFF_SPHERICAL = $40

DIEP_DURATION = 1
DIEP_SAMPLEPERIOD = 2
DIEP_GAIN = 4
DIEP_TRIGGERBUTTON = 8
DIEP_TRIGGERREPEATINTERVAL = $10
DIEP_AXES = $20
DIEP_DIRECTION = $40
DIEP_ENVELOPE = $80
DIEP_TYPESPECIFICPARAMS = $100

DIEP_STARTDELAY = $200
DIEP_ALLPARAMS_DX5 = $1FF
DIEP_ALLPARAMS = $3FF
DIEP_ALLPARAMS = $1FF

DIEP_START = $20000000
DIEP_NORESTART = $40000000
DIEP_NODOWNLOAD = $80000000
DIEB_NOTRIGGER = $FFFFFFFF
DIES_SOLO = 1
DIES_NODOWNLOAD = $80000000
DIEGES_PLAYING = 1
DIEGES_EMULATED = 2

struct DIEFFESCAPE
       dwSize dd ?
       dwCommand dd ?
       lpvInBuffer dq ?
       cbInBuffer dd ?,?
       lpvOutBuffer dq ?
       cbOutBuffer dd ?,?
ends

;IDirectInputDevice
DI8DEVCLASS_ALL = 0
DI8DEVCLASS_DEVICE = 1
DI8DEVCLASS_POINTER = 2
DI8DEVCLASS_KEYBOARD = 3
DI8DEVCLASS_GAMECTRL = 4

DI8DEVTYPE_DEVICE = $11
DI8DEVTYPE_MOUSE = $12
DI8DEVTYPE_KEYBOARD = $13
DI8DEVTYPE_JOYSTICK = $14
DI8DEVTYPE_GAMEPAD = $15
DI8DEVTYPE_DRIVING = $16
DI8DEVTYPE_FLIGHT = $17
DI8DEVTYPE_1STPERSON = $18
DI8DEVTYPE_DEVICECTRL = $19
DI8DEVTYPE_SCREENPOINTER = $1A
DI8DEVTYPE_REMOTE = $1B
DI8DEVTYPE_SUPPLEMENTAL = $1C
DIDEVTYPE_HID = $10000

DI8DEVTYPEMOUSE_UNKNOWN = 1
DI8DEVTYPEMOUSE_TRADITIONAL = 2
DI8DEVTYPEMOUSE_FINGERSTICK = 3
DI8DEVTYPEMOUSE_TOUCHPAD = 4
DI8DEVTYPEMOUSE_TRACKBALL = 5
DI8DEVTYPEMOUSE_ABSOLUTE = 6

DI8DEVTYPEKEYBOARD_UNKNOWN = 0
DI8DEVTYPEKEYBOARD_PCXT = 1
DI8DEVTYPEKEYBOARD_OLIVETTI = 2
DI8DEVTYPEKEYBOARD_PCAT = 3
DI8DEVTYPEKEYBOARD_PCENH = 4
DI8DEVTYPEKEYBOARD_NOKIA1050 = 5
DI8DEVTYPEKEYBOARD_NOKIA9140 = 6
DI8DEVTYPEKEYBOARD_NEC98 = 7
DI8DEVTYPEKEYBOARD_NEC98LAPTOP = 8
DI8DEVTYPEKEYBOARD_NEC98106 = 9
DI8DEVTYPEKEYBOARD_JAPAN106 = 10
DI8DEVTYPEKEYBOARD_JAPANAX = 11
DI8DEVTYPEKEYBOARD_J3100 = 12

DI8DEVTYPE_LIMITEDGAMESUBTYPE = 1

DI8DEVTYPEJOYSTICK_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE
DI8DEVTYPEJOYSTICK_STANDARD = 2

DI8DEVTYPEGAMEPAD_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE
DI8DEVTYPEGAMEPAD_STANDARD = 2
DI8DEVTYPEGAMEPAD_TILT = 3

DI8DEVTYPEDRIVING_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE
DI8DEVTYPEDRIVING_COMBINEDPEDALS = 2
DI8DEVTYPEDRIVING_DUALPEDALS = 3
DI8DEVTYPEDRIVING_THREEPEDALS = 4
DI8DEVTYPEDRIVING_HANDHELD = 5

DI8DEVTYPEFLIGHT_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE
DI8DEVTYPEFLIGHT_STICK = 2
DI8DEVTYPEFLIGHT_YOKE = 3
DI8DEVTYPEFLIGHT_RC = 4

DI8DEVTYPE1STPERSON_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE
DI8DEVTYPE1STPERSON_UNKNOWN = 2
DI8DEVTYPE1STPERSON_SIXDOF = 3
DI8DEVTYPE1STPERSON_SHOOTER = 4

DI8DEVTYPESCREENPTR_UNKNOWN = 2
DI8DEVTYPESCREENPTR_LIGHTGUN = 3
DI8DEVTYPESCREENPTR_LIGHTPEN = 4
DI8DEVTYPESCREENPTR_TOUCH = 5

DI8DEVTYPEREMOTE_UNKNOWN = 2

DI8DEVTYPEDEVICECTRL_UNKNOWN = 2
DI8DEVTYPEDEVICECTRL_COMMSSELECTION = 3
DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED = 4

DI8DEVTYPESUPPLEMENTAL_UNKNOWN = 2
DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER = 3
DI8DEVTYPESUPPLEMENTAL_HEADTRACKER = 4
DI8DEVTYPESUPPLEMENTAL_HANDTRACKER = 5
DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE = 6
DI8DEVTYPESUPPLEMENTAL_SHIFTER = 7
DI8DEVTYPESUPPLEMENTAL_THROTTLE = 8
DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE = 9
DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS = 10
DI8DEVTYPESUPPLEMENTAL_DUALPEDALS = 11
DI8DEVTYPESUPPLEMENTAL_THREEPEDALS = 12
DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS = 13

;GET_DIDEVICE_TYPE(dwDevType)    LOBYTE(dwDevType)
;GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType)

struct DIDEVCAPS
       dwSize dd ?
       dwFlags dd ?
       dwDevType dd ?
       dwAxes dd ?
       dwButtons dd ?
       dwPOVs dd ?
       dwFFSamplePeriod dd ?
       dwFFMinTimeResolution dd ?
       dwFirmwareRevision dd ?
       dwHardwareRevision dd ?
       dwFFDriverVersion dd ?
ends

DIDC_ATTACHED = 1
DIDC_POLLEDDEVICE = 2
DIDC_EMULATED = 4
DIDC_POLLEDDATAFORMAT = 8
DIDC_FORCEFEEDBACK = $100
DIDC_FFATTACK = $200
DIDC_FFFADE = $400
DIDC_SATURATION = $800
DIDC_POSNEGCOEFFICIENTS = $1000
DIDC_POSNEGSATURATION = $2000
DIDC_DEADBAND = $4000
DIDC_STARTDELAY = $8000
DIDC_ALIAS = $10000
DIDC_PHANTOM = $20000
DIDC_HIDDEN = $40000

DIDFT_ALL = 0
DIDFT_RELAXIS = 1
DIDFT_ABSAXIS = 2
DIDFT_AXIS = 3
DIDFT_PSHBUTTON = 4
DIDFT_TGLBUTTON = 8
DIDFT_BUTTON = $C
DIDFT_POV = $10
DIDFT_COLLECTION = $40
DIDFT_NODATA = $80
DIDFT_ANYINSTANCE = $FFFF00
DIDFT_INSTANCEMASK = DIDFT_ANYINSTANCE
DIDFT_FFACTUATOR = $1000000
DIDFT_FFEFFECTTRIGGER = $2000000
DIDFT_OUTPUT = $10000000
DIDFT_VENDORDEFINED = $4000000
DIDFT_ALIAS = $8000000
DIDFT_OPTIONAL = $80000000

DIDFT_NOCOLLECTION = $FFFF00

struct DIOBJECTDATAFORMAT
       pguid dq ?
       dwOfs dd ?
       dwType dd ?
       dwFlags dd ?,?
ends

struct DIDATAFORMAT
       dwSize dd ?
       dwObjSize dd ?
       dwFlags dd ?
       dwDataSize dd ?
       dwNumObjs dd ?,?
       rgodf dq ?
ends

DIDF_ABSAXIS = 1
DIDF_RELAXIS = 2

struct DIACTION
       uAppData dd ?
       dwSemantic dd ?
       dwFlags dd ?,?
       union
	   lptszActionName dq ?
	   uResIdString dd ?
       ends
       guidInstance GUID
       dwObjID dd ?
       dwHow dd ?
ends

DIA_FORCEFEEDBACK = 1
DIA_APPMAPPED = 2
DIA_APPNOMAP = 4
DIA_NORANGE = 8
DIA_APPFIXED = $10

DIAH_UNMAPPED = 0
DIAH_USERCONFIG = 1
DIAH_APPREQUESTED = 2
DIAH_HWAPP = 4
DIAH_HWDEFAULT = 8
DIAH_DEFAULT = $20
DIAH_ERROR = $80000000

struct DIACTIONFORMATA
       dwSize dd ?
       dwActionSize dd ?
       dwDataSize dd ?
       dwNumActions dd ?
       rgoAction dq ?
       guidActionMap GUID
       dwGenre dd ?
       dwBufferSize dd ?
       lAxisMin dd ?
       lAxisMax dd ?
       hInstString dq ?
       ftTimeStamp FILETIME
       dwCRC dd ?
       tszActionMap db MAX_PATH dup(?)
ends

struct DIACTIONFORMATW
       dwSize dd ?
       dwActionSize dd ?
       dwDataSize dd ?
       dwNumActions dd ?
       rgoAction dq ?
       guidActionMap GUID
       dwGenre dd ?
       dwBufferSize dd ?
       lAxisMin dd ?
       lAxisMax dd ?
       hInstString dq ?
       ftTimeStamp FILETIME
       dwCRC dd ?
       tszActionMap du MAX_PATH+2 dup(?)
ends

DIAFTS_NEWDEVICELOW = $FFFFFFFF
DIAFTS_NEWDEVICEHIGH = $FFFFFFFF
DIAFTS_UNUSEDDEVICELOW = 0
DIAFTS_UNUSEDDEVICEHIGH = 0

DIDBAM_DEFAULT = 0
DIDBAM_PRESERVE = 1
DIDBAM_INITIALIZE = 2
DIDBAM_HWDEFAULTS = 4

DIDSAM_DEFAULT = 0
DIDSAM_NOUSER = 1
DIDSAM_FORCESAVE = 2

DICD_DEFAULT = 0
DICD_EDIT = 1

struct DICOLORSET
       dwSize dd ?
       cTextFore dd ?
       cTextHighlight dd ?
       cCalloutLine dd ?
       cCalloutHighlight dd ?
       cBorder dd ?
       cControlFill dd ?
       cHighlightFill dd ?
       cAreaFill dd ?
ends

struct DICONFIGUREDEVICESPARAMS
       dwSize dd ?
       dwcUsers dd ?
       lptszUserNames dq ?
       dwcFormats dd ?,?
       lprgFormats dq ?
       hwnd dq ?
       dics DICOLORSET
       pad1 dd ?
       lpUnkDDSTarget dq ?
ends

DIDIFT_CONFIGURATION = 1
DIDIFT_OVERLAY = 2

DIDAL_CENTERED = 0
DIDAL_LEFTALIGNED = 1
DIDAL_RIGHTALIGNED = 2
DIDAL_MIDDLE = 0
DIDAL_TOPALIGNED = 4
DIDAL_BOTTOMALIGNED = 8

struct DIDEVICEIMAGEINFOA
       tszImagePath db MAX_PATH dup(?)
       dwFlags dd ?
       dwViewID dd ?
       rcOverlay RECT
       dwObjID dd ?
       dwcValidPts dd ?
       rgptCalloutLine POINT
       db 4*sizeof.POINT dup(?)
       rcCalloutRect RECT
       dwTextAlign dd ?
ends

struct DIDEVICEIMAGEINFOW
       tszImagePath du MAX_PATH dup(?)
       dwFlags dd ?
       dwViewID dd ?
       rcOverlay RECT
       dwObjID dd ?
       dwcValidPts dd ?
       rgptCalloutLine POINT
       db 4*sizeof.POINT dup(?)
       rcCalloutRect RECT
       dwTextAlign dd ?
ends

struct DIDEVICEIMAGEINFOHEADER
       dwSize dd ?
       dwSizeImageInfo dd ?
       dwcViews dd ?
       dwcButtons dd ?
       dwcAxes dd ?
       dwcPOVs dd ?
       dwBufferSize dd ?
       dwBufferUsed dd ?
       lprgImageInfoArray dq ?
ends

struct DIDEVICEOBJECTINSTANCEA
       dwSize dd ?
       guidType GUID
       dwOfs dd ?
       dwType dd ?
       dwFlags dd ?
       tszName db MAX_PATH dup(?)
       dwFFMaxForce dd ?
       dwFFForceResolution dd ?
       wCollectionNumber dw ?
       wDesignatorIndex dw ?
       wUsagePage dw ?
       wUsage dw ?
       dwDimension dd ?
       wExponent dw ?
       wReportId dw ?
ends

struct DIDEVICEOBJECTINSTANCEW
       dwSize dd ?
       guidType GUID
       dwOfs dd ?
       dwType dd ?
       dwFlags dd ?
       tszName du MAX_PATH dup(?)
       dwFFMaxForce dd ?
       dwFFForceResolution dd ?
       wCollectionNumber dw ?
       wDesignatorIndex dw ?
       wUsagePage dw ?
       wUsage dw ?
       dwDimension dd ?
       wExponent dw ?
       wReportId dw ?
ends

DIDOI_FFACTUATOR = 1
DIDOI_FFEFFECTTRIGGER = 2
DIDOI_POLLED = $8000
DIDOI_ASPECTPOSITION = $100
DIDOI_ASPECTVELOCITY = $200
DIDOI_ASPECTACCEL = $300
DIDOI_ASPECTFORCE = $400
DIDOI_ASPECTMASK = $F00
DIDOI_GUIDISUSAGE = $10000

struct DIPROPHEADER
       dwSize dd ?
       dwHeaderSize dd ?
       dwObj dd ?
       dwHow dd ?
ends

DIPH_DEVICE = 0
DIPH_BYOFFSET = 1
DIPH_BYID = 2
DIPH_BYUSAGE = 3

struct DIPROPDWORD
       diph DIPROPHEADER;
       dwData dd ?
ends

struct DIPROPPOINTER
       diph DIPROPHEADER
       uData dq ?
ends

struct DIPROPRANGE
       diph DIPROPHEADER
       lMin dd ?
       lMax dd ?
ends

DIPROPRANGE_NOMIN = $80000000
DIPROPRANGE_NOMAX = $7FFFFFFF

struct DIPROPCAL
       diph DIPROPHEADER
       lMin dd ?
       lCenter dd ?
       lMax dd ?
ends

struct DIPROPCALPOV
       diph DIPROPHEADER
       lMin dd 5 dup(?)
       lMax dd 5 dup(?)
ends

struct DIPROPGUIDANDPATH
       diph DIPROPHEADER
       guidClass GUID
       wszPath du MAX_PATH dup(?)
ends

struct DIPROPSTRING
       diph DIPROPHEADER
       wsz du MAX_PATH dup(?)
ends

MAXCPOINTSNUM = 8

struct CPOINT
       lP dd ? ;raw value
       dwLog dd ? ;logical_value / max_logical_value * 10000
ends

struct DIPROPCPOINTS
       diph DIPROPHEADER
       dwCPointsNum dd ?
       cp CPOINT
	  db (MAXCPOINTSNUM-1)*sizeof.CPOINT dup(?)
ends

DIPROPAXISMODE_ABS = 0
DIPROPAXISMODE_REL = 1
DIPROPAUTOCENTER_OFF = 0
DIPROPAUTOCENTER_ON = 1
DIPROPCALIBRATIONMODE_COOKED = 0
DIPROPCALIBRATIONMODE_RAW = 1

struct DIDEVICEOBJECTDATA
       dwOfs dd ?
       dwData dd ?
       dwTimeStamp dd ?
       dwSequence dd ?
       uAppData dq ?
ends

DIGDD_PEEK = 1
DISCL_EXCLUSIVE = 1
DISCL_NONEXCLUSIVE = 2
DISCL_FOREGROUND = 4
DISCL_BACKGROUND = 8
DISCL_NOWINKEY = $10

struct DIDEVICEINSTANCEA
       dwSize dd ?
       guidInstance GUID
       guidProduct GUID
       dwDevType dd ?
       tszInstanceName db MAX_PATH dup(?)
       tszProductName db MAX_PATH dup(?)
       guidFFDriver GUID
       wUsagePage dw ?
       wUsage dw ?
ends

struct DIDEVICEINSTANCEW
       dwSize dd ?
       guidInstance GUID
       guidProduct GUID
       dwDevType dd ?
       tszInstanceName du MAX_PATH dup(?)
       tszProductName du MAX_PATH dup(?)
       guidFFDriver GUID
       wUsagePage dw ?
       wUsage dw ?
ends

DISFFC_RESET = 1
DISFFC_STOPALL = 2
DISFFC_PAUSE = 4
DISFFC_CONTINUE = 8
DISFFC_SETACTUATORSON = $10
DISFFC_SETACTUATORSOFF = $20

DIGFFS_EMPTY = 1
DIGFFS_STOPPED = 2
DIGFFS_PAUSED = 4
DIGFFS_ACTUATORSON = $10
DIGFFS_ACTUATORSOFF = $20
DIGFFS_POWERON = $40
DIGFFS_POWEROFF = $80
DIGFFS_SAFETYSWITCHON = $100
DIGFFS_SAFETYSWITCHOFF = $200
DIGFFS_USERFFSWITCHON = $400
DIGFFS_USERFFSWITCHOFF = $800
DIGFFS_DEVICELOST = $80000000

struct DIEFFECTINFOA
       dwSize dd ?
       guid GUID
       dwEffType dd ?
       dwStaticParams dd ?
       dwDynamicParams dd ?
       tszName db MAX_PATH dup(?)
ends

struct DIEFFECTINFOW
       dwSize dd ?
       guid GUID
       dwEffType dd ?
       dwStaticParams dd ?
       dwDynamicParams dd ?
       tszName du MAX_PATH dup(?)
ends

DISDD_CONTINUE = 1
DIFEF_DEFAULT = 0
DIFEF_INCLUDENONSTANDARD = 1
DIFEF_MODIFYIFNEEDED = $10

struct DIMOUSESTATE
       lX dd ?
       lY dd ?
       lZ dd ?
       rgbButtons db 4 dup(?)
ends

struct DIMOUSESTATE2
       lX dd ?
       lY dd ?
       lZ dd ?
       rgbButtons db 8 dup(?)
ends

DIK_ESCAPE	     = $01
DIK_1		     = $02
DIK_2		     = $03
DIK_3		     = $04
DIK_4		     = $05
DIK_5		     = $06
DIK_6		     = $07
DIK_7		     = $08
DIK_8		     = $09
DIK_9		     = $0A
DIK_0		     = $0B
DIK_MINUS	     = $0C
DIK_EQUALS	     = $0D
DIK_BACK	     = $0E
DIK_TAB 	     = $0F
DIK_Q		     = $10
DIK_W		     = $11
DIK_E		     = $12
DIK_R		     = $13
DIK_T		     = $14
DIK_Y		     = $15
DIK_U		     = $16
DIK_I		     = $17
DIK_O		     = $18
DIK_P		     = $19
DIK_LBRACKET	     = $1A
DIK_RBRACKET	     = $1B
DIK_RETURN	     = $1C
DIK_LCONTROL	     = $1D
DIK_A		     = $1E
DIK_S		     = $1F
DIK_D		     = $20
DIK_F		     = $21
DIK_G		     = $22
DIK_H		     = $23
DIK_J		     = $24
DIK_K		     = $25
DIK_L		     = $26
DIK_SEMICOLON	     = $27
DIK_APOSTROPHE	     = $28
DIK_GRAVE	     = $29
DIK_LSHIFT	     = $2A
DIK_BACKSLASH	     = $2B
DIK_Z		     = $2C
DIK_X		     = $2D
DIK_C		     = $2E
DIK_V		     = $2F
DIK_B		     = $30
DIK_N		     = $31
DIK_M		     = $32
DIK_COMMA	     = $33
DIK_PERIOD	     = $34
DIK_SLASH	     = $35
DIK_RSHIFT	     = $36
DIK_MULTIPLY	     = $37
DIK_LMENU	     = $38
DIK_SPACE	     = $39
DIK_CAPITAL	     = $3A
DIK_F1		     = $3B
DIK_F2		     = $3C
DIK_F3		     = $3D
DIK_F4		     = $3E
DIK_F5		     = $3F
DIK_F6		     = $40
DIK_F7		     = $41
DIK_F8		     = $42
DIK_F9		     = $43
DIK_F10 	     = $44
DIK_NUMLOCK	     = $45
DIK_SCROLL	     = $46
DIK_NUMPAD7	     = $47
DIK_NUMPAD8	     = $48
DIK_NUMPAD9	     = $49
DIK_SUBTRACT	     = $4A
DIK_NUMPAD4	     = $4B
DIK_NUMPAD5	     = $4C
DIK_NUMPAD6	     = $4D
DIK_ADD 	     = $4E
DIK_NUMPAD1	     = $4F
DIK_NUMPAD2	     = $50
DIK_NUMPAD3	     = $51
DIK_NUMPAD0	     = $52
DIK_DECIMAL	     = $53
DIK_OEM_102	     = $56
DIK_F11 	     = $57
DIK_F12 	     = $58
DIK_F13 	     = $64
DIK_F14 	     = $65
DIK_F15 	     = $66
DIK_KANA	     = $70
DIK_ABNT_C1	     = $73
DIK_CONVERT	     = $79
DIK_NOCONVERT	     = $7B
DIK_YEN 	     = $7D
DIK_ABNT_C2	     = $7E
DIK_NUMPADEQUALS     = $8D
DIK_PREVTRACK	     = $90
DIK_AT		     = $91
DIK_COLON	     = $92
DIK_UNDERLINE	     = $93
DIK_KANJI	     = $94
DIK_STOP	     = $95
DIK_AX		     = $96
DIK_UNLABELED	     = $97
DIK_NEXTTRACK	     = $99
DIK_NUMPADENTER      = $9C
DIK_RCONTROL	     = $9D
DIK_MUTE	     = $A0
DIK_CALCULATOR	     = $A1
DIK_PLAYPAUSE	     = $A2
DIK_MEDIASTOP	     = $A4
DIK_VOLUMEDOWN	     = $AE
DIK_VOLUMEUP	     = $B0
DIK_WEBHOME	     = $B2
DIK_NUMPADCOMMA      = $B3
DIK_DIVIDE	     = $B5
DIK_SYSRQ	     = $B7
DIK_RMENU	     = $B8
DIK_PAUSE	     = $C5
DIK_HOME	     = $C7
DIK_UP		     = $C8
DIK_PRIOR	     = $C9
DIK_LEFT	     = $CB
DIK_RIGHT	     = $CD
DIK_END 	     = $CF
DIK_DOWN	     = $D0
DIK_NEXT	     = $D1
DIK_INSERT	     = $D2
DIK_DELETE	     = $D3
DIK_LWIN	     = $DB
DIK_RWIN	     = $DC
DIK_APPS	     = $DD
DIK_POWER	     = $DE
DIK_SLEEP	     = $DF
DIK_WAKE	     = $E3
DIK_WEBSEARCH	     = $E5
DIK_WEBFAVORITES     = $E6
DIK_WEBREFRESH	     = $E7
DIK_WEBSTOP	     = $E8
DIK_WEBFORWARD	     = $E9
DIK_WEBBACK	     = $EA
DIK_MYCOMPUTER	     = $EB
DIK_MAIL	     = $EC
DIK_MEDIASELECT      = $ED

DIK_BACKSPACE	  = DIK_BACK
DIK_NUMPADSTAR	  = DIK_MULTIPLY
DIK_LALT	  = DIK_LMENU
DIK_CAPSLOCK	  = DIK_CAPITAL
DIK_NUMPADMINUS   = DIK_SUBTRACT
DIK_NUMPADPLUS	  = DIK_ADD
DIK_NUMPADPERIOD  = DIK_DECIMAL
DIK_NUMPADSLASH   = DIK_DIVIDE
DIK_RALT	  = DIK_RMENU
DIK_UPARROW	  = DIK_UP
DIK_PGUP	  = DIK_PRIOR
DIK_LEFTARROW	  = DIK_LEFT
DIK_RIGHTARROW	  = DIK_RIGHT
DIK_DOWNARROW	  = DIK_DOWN
DIK_PGDN	  = DIK_NEXT

DIK_CIRCUMFLEX = DIK_PREVTRACK

struct DIJOYSTATE
       lX dd ?
       lY dd ?
       lZ dd ?
       lRx dd ?
       lRy dd ?
       lRz dd ?
       rglSlider dd 2 dup(?)
       rgdwPOV dd 4 dup(?)
       rgbButtons db 32 dup(?)
ends

struct DIJOYSTATE2
       lX dd ?
       lY dd ?
       lZ dd ?
       lRx dd ?
       lRy dd ?
       lRz dd ?
       rglSlider dd 2 dup(?)
       rgdwPOV dd 4 dup(?)
       rgbButtons db 128 dup(?)
       lVX dd ?
       lVY dd ?
       lVZ dd ?
       lVRx dd ?
       lVRy dd ?
       lVRz dd ?
       rglVSlider dd ?,?
       lAX dd ?
       lAY dd ?
       lAZ dd ?
       lARx dd ?
       lARy dd ?
       lARz dd ?
       rglASlider dd ?,?
       lFX dd ?
       lFY dd ?
       lFZ dd ?
       lFRx dd ?
       lFRy dd ?
       lFRz dd ?
       rglFSlider dd ?,?
ends

;IDirectInput
DIENUM_STOP = 0
DIENUM_CONTINUE = 1

DIEDFL_ALLDEVICES = 0
DIEDFL_ATTACHEDONLY = 1
DIEDFL_FORCEFEEDBACK = $100
DIEDFL_INCLUDEALIASES = $10000
DIEDFL_INCLUDEPHANTOMS = $20000
DIEDFL_INCLUDEHIDDEN = $40000

DIEDBS_MAPPEDPRI1 = 1
DIEDBS_MAPPEDPRI2 = 2
DIEDBS_RECENTDEVICE = $10
DIEDBS_NEWDEVICE = $20

DIEDBSFL_ATTACHEDONLY = 0
DIEDBSFL_THISUSER = $10
DIEDBSFL_FORCEFEEDBACK = DIEDFL_FORCEFEEDBACK
DIEDBSFL_AVAILABLEDEVICES = $1000
DIEDBSFL_MULTIMICEKEYBOARDS = $2000
DIEDBSFL_NONGAMINGDEVICES = $4000
DIEDBSFL_VALID = $7110

DI_OK = S_OK
DI_NOTATTACHED = S_FALSE
DI_BUFFEROVERFLOW = S_FALSE
DI_PROPNOEFFECT = S_FALSE
DI_NOEFFECT = S_FALSE
DI_POLLEDDEVICE = 2
DI_DOWNLOADSKIPPED = 3
DI_EFFECTRESTARTED = 4
DI_TRUNCATED = 8
DI_SETTINGSNOTSAVED = $B
DI_TRUNCATEDANDRESTARTED = $C
DI_WRITEPROTECT = $13

SEVERITY_ERROR = 1

DIERR_OLDDIRECTINPUTVERSION = $8007047E
DIERR_BETADIRECTINPUTVERSION = $80070481
DIERR_BADDRIVERVER = $80070077
DIERR_DEVICENOTREG = $80040154
DIERR_NOTFOUND = $80070002
DIERR_OBJECTNOTFOUND = $80070002
DIERR_INVALIDPARAM = $80070057
DIERR_NOINTERFACE = $80004002
DIERR_GENERIC = $80004005
DIERR_OUTOFMEMORY = $8007000E
DIERR_UNSUPPORTED = $80004001
DIERR_NOTINITIALIZED = $80070015
DIERR_ALREADYINITIALIZED = $800704DF
DIERR_NOAGGREGATION = $80040110
DIERR_OTHERAPPHASPRIO = $80070005
DIERR_INPUTLOST = $8007001E
DIERR_ACQUIRED = $800700AA
DIERR_NOTACQUIRED = $8007000C
DIERR_READONLY = $80070005
DIERR_HANDLEEXISTS = $80070005
DIERR_INSUFFICIENTPRIVS = $80040200
DIERR_DEVICEFULL = $80040201
DIERR_MOREDATA = $80040202
DIERR_NOTDOWNLOADED = $80040203
DIERR_HASEFFECTS = $80040204
DIERR_NOTEXCLUSIVEACQUIRED = $80040205
DIERR_INCOMPLETEEFFECT = $80040206
DIERR_NOTBUFFERED = $80040207
DIERR_EFFECTPLAYING = $80040208
DIERR_UNPLUGGED = $80040209
DIERR_REPORTFULL = $8004020A
DIERR_MAPFILEFAIL = $8004020B

DIKEYBOARD_ESCAPE = $81000401
DIKEYBOARD_1 = $81000402
DIKEYBOARD_2 = $81000403
DIKEYBOARD_3 = $81000404
DIKEYBOARD_4 = $81000405
DIKEYBOARD_5 = $81000406
DIKEYBOARD_6 = $81000407
DIKEYBOARD_7 = $81000408
DIKEYBOARD_8 = $81000409
DIKEYBOARD_9 = $8100040A
DIKEYBOARD_0 = $8100040B
DIKEYBOARD_MINUS = $8100040C
DIKEYBOARD_EQUALS = $8100040D
DIKEYBOARD_BACK = $8100040E
DIKEYBOARD_TAB = $8100040F
DIKEYBOARD_Q = $81000410
DIKEYBOARD_W = $81000411
DIKEYBOARD_E = $81000412
DIKEYBOARD_R = $81000413
DIKEYBOARD_T = $81000414
DIKEYBOARD_Y = $81000415
DIKEYBOARD_U = $81000416
DIKEYBOARD_I = $81000417
DIKEYBOARD_O = $81000418
DIKEYBOARD_P = $81000419
DIKEYBOARD_LBRACKET = $8100041A
DIKEYBOARD_RBRACKET = $8100041B
DIKEYBOARD_RETURN = $8100041C
DIKEYBOARD_LCONTROL = $8100041D
DIKEYBOARD_A = $8100041E
DIKEYBOARD_S = $8100041F
DIKEYBOARD_D = $81000420
DIKEYBOARD_F = $81000421
DIKEYBOARD_G = $81000422
DIKEYBOARD_H = $81000423
DIKEYBOARD_J = $81000424
DIKEYBOARD_K = $81000425
DIKEYBOARD_L = $81000426
DIKEYBOARD_SEMICOLON = $81000427
DIKEYBOARD_APOSTROPHE = $81000428
DIKEYBOARD_GRAVE = $81000429
DIKEYBOARD_LSHIFT = $8100042A
DIKEYBOARD_BACKSLASH = $8100042B
DIKEYBOARD_Z = $8100042C
DIKEYBOARD_X = $8100042D
DIKEYBOARD_C = $8100042E
DIKEYBOARD_V = $8100042F
DIKEYBOARD_B = $81000430
DIKEYBOARD_N = $81000431
DIKEYBOARD_M = $81000432
DIKEYBOARD_COMMA = $81000433
DIKEYBOARD_PERIOD = $81000434
DIKEYBOARD_SLASH = $81000435
DIKEYBOARD_RSHIFT = $81000436
DIKEYBOARD_MULTIPLY = $81000437
DIKEYBOARD_LMENU = $81000438
DIKEYBOARD_SPACE = $81000439
DIKEYBOARD_CAPITAL = $8100043A
DIKEYBOARD_F1 = $8100043B
DIKEYBOARD_F2 = $8100043C
DIKEYBOARD_F3 = $8100043D
DIKEYBOARD_F4 = $8100043E
DIKEYBOARD_F5 = $8100043F
DIKEYBOARD_F6 = $81000440
DIKEYBOARD_F7 = $81000441
DIKEYBOARD_F8 = $81000442
DIKEYBOARD_F9 = $81000443
DIKEYBOARD_F10 = $81000444
DIKEYBOARD_NUMLOCK = $81000445
DIKEYBOARD_SCROLL = $81000446
DIKEYBOARD_NUMPAD7 = $81000447
DIKEYBOARD_NUMPAD8 = $81000448
DIKEYBOARD_NUMPAD9 = $81000449
DIKEYBOARD_SUBTRACT = $8100044A
DIKEYBOARD_NUMPAD4 = $8100044B
DIKEYBOARD_NUMPAD5 = $8100044C
DIKEYBOARD_NUMPAD6 = $8100044D
DIKEYBOARD_ADD = $8100044E
DIKEYBOARD_NUMPAD1 = $8100044F
DIKEYBOARD_NUMPAD2 = $81000450
DIKEYBOARD_NUMPAD3 = $81000451
DIKEYBOARD_NUMPAD0 = $81000452
DIKEYBOARD_DECIMAL = $81000453
DIKEYBOARD_OEM_102 = $81000456
DIKEYBOARD_F11 = $81000457
DIKEYBOARD_F12 = $81000458
DIKEYBOARD_F13 = $81000464
DIKEYBOARD_F14 = $81000465
DIKEYBOARD_F15 = $81000466
DIKEYBOARD_KANA = $81000470
DIKEYBOARD_ABNT_C1 = $81000473
DIKEYBOARD_CONVERT = $81000479
DIKEYBOARD_NOCONVERT = $8100047B
DIKEYBOARD_YEN = $8100047D
DIKEYBOARD_ABNT_C2 = $8100047E
DIKEYBOARD_NUMPADEQUALS = $8100048D
DIKEYBOARD_PREVTRACK = $81000490
DIKEYBOARD_AT = $81000491
DIKEYBOARD_COLON = $81000492
DIKEYBOARD_UNDERLINE = $81000493
DIKEYBOARD_KANJI = $81000494
DIKEYBOARD_STOP = $81000495
DIKEYBOARD_AX = $81000496
DIKEYBOARD_UNLABELED = $81000497
DIKEYBOARD_NEXTTRACK = $81000499
DIKEYBOARD_NUMPADENTER = $8100049C
DIKEYBOARD_RCONTROL = $8100049D
DIKEYBOARD_MUTE = $810004A0
DIKEYBOARD_CALCULATOR = $810004A1
DIKEYBOARD_PLAYPAUSE = $810004A2
DIKEYBOARD_MEDIASTOP = $810004A4
DIKEYBOARD_VOLUMEDOWN = $810004AE
DIKEYBOARD_VOLUMEUP = $810004B0
DIKEYBOARD_WEBHOME = $810004B2
DIKEYBOARD_NUMPADCOMMA = $810004B3
DIKEYBOARD_DIVIDE = $810004B5
DIKEYBOARD_SYSRQ = $810004B7
DIKEYBOARD_RMENU = $810004B8
DIKEYBOARD_PAUSE = $810004C5
DIKEYBOARD_HOME = $810004C7
DIKEYBOARD_UP = $810004C8
DIKEYBOARD_PRIOR = $810004C9
DIKEYBOARD_LEFT = $810004CB
DIKEYBOARD_RIGHT = $810004CD
DIKEYBOARD_END = $810004CF
DIKEYBOARD_DOWN = $810004D0
DIKEYBOARD_NEXT = $810004D1
DIKEYBOARD_INSERT = $810004D2
DIKEYBOARD_DELETE = $810004D3
DIKEYBOARD_LWIN = $810004DB
DIKEYBOARD_RWIN = $810004DC
DIKEYBOARD_APPS = $810004DD
DIKEYBOARD_POWER = $810004DE
DIKEYBOARD_SLEEP = $810004DF
DIKEYBOARD_WAKE = $810004E3
DIKEYBOARD_WEBSEARCH = $810004E5
DIKEYBOARD_WEBFAVORITES = $810004E6
DIKEYBOARD_WEBREFRESH = $810004E7
DIKEYBOARD_WEBSTOP = $810004E8
DIKEYBOARD_WEBFORWARD = $810004E9
DIKEYBOARD_WEBBACK = $810004EA
DIKEYBOARD_MYCOMPUTER = $810004EB
DIKEYBOARD_MAIL = $810004EC
DIKEYBOARD_MEDIASELECT = $810004ED

;MOUSE - Physical Mouse Device
DIMOUSE_XAXISAB = $82000200
DIMOUSE_YAXISAB = $82000204
DIMOUSE_XAXIS = $82000300
DIMOUSE_YAXIS = $82000304
DIMOUSE_WHEEL = $82000308
DIMOUSE_BUTTON0 = $8200040C
DIMOUSE_BUTTON1 = $8200040D
DIMOUSE_BUTTON2 = $8200040E
DIMOUSE_BUTTON3 = $8200040F
DIMOUSE_BUTTON4 = $82000410
DIMOUSE_BUTTON5 = $82000411
DIMOUSE_BUTTON6 = $82000412
DIMOUSE_BUTTON7 = $82000413

DIVOICE_CHANNEL1 = $83000401
DIVOICE_CHANNEL2 = $83000402
DIVOICE_CHANNEL3 = $83000403
DIVOICE_CHANNEL4 = $83000404
DIVOICE_CHANNEL5 = $83000405
DIVOICE_CHANNEL6 = $83000406
DIVOICE_CHANNEL7 = $83000407
DIVOICE_CHANNEL8 = $83000408
DIVOICE_TEAM = $83000409
DIVOICE_ALL = $8300040A
DIVOICE_RECORDMUTE = $8300040B
DIVOICE_PLAYBACKMUTE = $8300040C
DIVOICE_TRANSMIT = $8300040D

DIVOICE_VOICECOMMAND = $83000410

DIVIRTUAL_DRIVING_RACE = $01000000
DIAXIS_DRIVINGR_STEER = $01008A01
DIAXIS_DRIVINGR_ACCELERATE = $01039202
DIAXIS_DRIVINGR_BRAKE = $01041203
DIBUTTON_DRIVINGR_SHIFTUP = $01000C01
DIBUTTON_DRIVINGR_SHIFTDOWN = $01000C02
DIBUTTON_DRIVINGR_VIEW = $01001C03
DIBUTTON_DRIVINGR_MENU = $010004FD

DIAXIS_DRIVINGR_ACCEL_AND_BRAKE = $01014A04
DIHATSWITCH_DRIVINGR_GLANCE = $01004601
DIBUTTON_DRIVINGR_BRAKE = $01004C04
DIBUTTON_DRIVINGR_DASHBOARD = $01004405
DIBUTTON_DRIVINGR_AIDS = $01004406
DIBUTTON_DRIVINGR_MAP = $01004407
DIBUTTON_DRIVINGR_BOOST = $01004408
DIBUTTON_DRIVINGR_PIT = $01004409
DIBUTTON_DRIVINGR_ACCELERATE_LINK = $0103D4E0
DIBUTTON_DRIVINGR_STEER_LEFT_LINK = $0100CCE4
DIBUTTON_DRIVINGR_STEER_RIGHT_LINK = $0100CCEC
DIBUTTON_DRIVINGR_GLANCE_LEFT_LINK = $0107C4E4
DIBUTTON_DRIVINGR_GLANCE_RIGHT_LINK = $0107C4EC
DIBUTTON_DRIVINGR_DEVICE = $010044FE
DIBUTTON_DRIVINGR_PAUSE = $010044FC

DIVIRTUAL_DRIVING_COMBAT = $02000000
DIAXIS_DRIVINGC_STEER = $02008A01
DIAXIS_DRIVINGC_ACCELERATE = $02039202
DIAXIS_DRIVINGC_BRAKE = $02041203
DIBUTTON_DRIVINGC_FIRE = $02000C01
DIBUTTON_DRIVINGC_WEAPONS = $02000C02
DIBUTTON_DRIVINGC_TARGET = $02000C03
DIBUTTON_DRIVINGC_MENU = $020004FD

DIAXIS_DRIVINGC_ACCEL_AND_BRAKE = $02014A04
DIHATSWITCH_DRIVINGC_GLANCE = $02004601
DIBUTTON_DRIVINGC_SHIFTUP = $02004C04
DIBUTTON_DRIVINGC_SHIFTDOWN = $02004C05
DIBUTTON_DRIVINGC_DASHBOARD = $02004406
DIBUTTON_DRIVINGC_AIDS = $02004407
DIBUTTON_DRIVINGC_BRAKE = $02004C08
DIBUTTON_DRIVINGC_FIRESECONDARY = $02004C09
DIBUTTON_DRIVINGC_ACCELERATE_LINK = $0203D4E0
DIBUTTON_DRIVINGC_STEER_LEFT_LINK = $0200CCE4
DIBUTTON_DRIVINGC_STEER_RIGHT_LINK = $0200CCEC
DIBUTTON_DRIVINGC_GLANCE_LEFT_LINK = $0207C4E4
DIBUTTON_DRIVINGC_GLANCE_RIGHT_LINK = $0207C4EC
DIBUTTON_DRIVINGC_DEVICE = $020044FE
DIBUTTON_DRIVINGC_PAUSE = $020044FC

;--- Driving Simulator - Tank
;Combat from withing a tank is primary objective  ---
DIVIRTUAL_DRIVING_TANK = $03000000
DIAXIS_DRIVINGT_STEER = $03008A01 ; Turn tank left / right
DIAXIS_DRIVINGT_BARREL = $03010202 ; Raise / lower barrel
DIAXIS_DRIVINGT_ACCELERATE = $03039203 ; Accelerate
DIAXIS_DRIVINGT_ROTATE = $03020204 ; Turn barrel left / right
DIBUTTON_DRIVINGT_FIRE = $03000C01 ; Fire
DIBUTTON_DRIVINGT_WEAPONS = $03000C02 ; Select next weapon
DIBUTTON_DRIVINGT_TARGET = $03000C03 ; Selects next available target
DIBUTTON_DRIVINGT_MENU = $030004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_DRIVINGT_GLANCE = $03004601 ; Look around
DIAXIS_DRIVINGT_BRAKE = $03045205 ; Brake-axis
DIAXIS_DRIVINGT_ACCEL_AND_BRAKE = $03014A06 ; Some devices combine accelerate and brake in a single axis
DIBUTTON_DRIVINGT_VIEW = $03005C04 ; Cycle through view options
DIBUTTON_DRIVINGT_DASHBOARD = $03005C05 ; Select next dashboard option
DIBUTTON_DRIVINGT_BRAKE = $03004C06 ; Brake-button
DIBUTTON_DRIVINGT_FIRESECONDARY = $03004C07 ; Alternative fire button
DIBUTTON_DRIVINGT_ACCELERATE_LINK = $0303D4E0 ; Fallback Accelerate button
DIBUTTON_DRIVINGT_STEER_LEFT_LINK = $0300CCE4 ; Fallback Steer Left button
DIBUTTON_DRIVINGT_STEER_RIGHT_LINK = $0300CCEC ; Fallback Steer Right button
DIBUTTON_DRIVINGT_BARREL_UP_LINK = $030144E0 ; Fallback Barrel up button
DIBUTTON_DRIVINGT_BARREL_DOWN_LINK = $030144E8 ; Fallback Barrel down button
DIBUTTON_DRIVINGT_ROTATE_LEFT_LINK = $030244E4 ; Fallback Rotate left button
DIBUTTON_DRIVINGT_ROTATE_RIGHT_LINK = $030244EC ; Fallback Rotate right button
DIBUTTON_DRIVINGT_GLANCE_LEFT_LINK = $0307C4E4 ; Fallback Glance Left button
DIBUTTON_DRIVINGT_GLANCE_RIGHT_LINK = $0307C4EC ; Fallback Glance Right button
DIBUTTON_DRIVINGT_DEVICE = $030044FE ; Show input device and controls
DIBUTTON_DRIVINGT_PAUSE = $030044FC ; Start / Pause / Restart game

;--- Flight Simulator - Civilian
;Plane control is the primary objective  ---
DIVIRTUAL_FLYING_CIVILIAN		 = $04000000
DIAXIS_FLYINGC_BANK			 = $04008A01 ; Roll ship left / right
DIAXIS_FLYINGC_PITCH			 = $04010A02 ; Nose up / down
DIAXIS_FLYINGC_THROTTLE 		 = $04039203 ; Throttle
DIBUTTON_FLYINGC_VIEW			 = $04002401 ; Cycle through view options
DIBUTTON_FLYINGC_DISPLAY		 = $04002402 ; Select next dashboard / heads up display option
DIBUTTON_FLYINGC_GEAR			 = $04002C03 ; Gear up / down
DIBUTTON_FLYINGC_MENU			 = $040004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_FLYINGC_GLANCE		 = $04004601 ; Look around
DIAXIS_FLYINGC_BRAKE			 = $04046A04 ; Apply Brake
DIAXIS_FLYINGC_RUDDER			 = $04025205 ; Yaw ship left/right
DIAXIS_FLYINGC_FLAPS			 = $04055A06 ; Flaps
DIBUTTON_FLYINGC_FLAPSUP		 = $04006404 ; Increment stepping up until fully retracted
DIBUTTON_FLYINGC_FLAPSDOWN		 = $04006405 ; Decrement stepping down until fully extended
DIBUTTON_FLYINGC_BRAKE_LINK		 = $04046CE0 ; Fallback brake button
DIBUTTON_FLYINGC_FASTER_LINK		 = $0403D4E0 ; Fallback throttle up button
DIBUTTON_FLYINGC_SLOWER_LINK		 = $0403D4E8 ; Fallback throttle down button
DIBUTTON_FLYINGC_GLANCE_LEFT_LINK	 = $0407C4E4 ; Fallback Glance Left button
DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK	 = $0407C4EC ; Fallback Glance Right button
DIBUTTON_FLYINGC_GLANCE_UP_LINK 	 = $0407C4E0 ; Fallback Glance Up button
DIBUTTON_FLYINGC_GLANCE_DOWN_LINK	 = $0407C4E8 ; Fallback Glance Down button
DIBUTTON_FLYINGC_DEVICE 		 = $040044FE ; Show input device and controls
DIBUTTON_FLYINGC_PAUSE			 = $040044FC ; Start / Pause / Restart game

;--- Flight Simulator - Military
;Aerial combat is the primary objective  ---
DIVIRTUAL_FLYING_MILITARY		 = $05000000
DIAXIS_FLYINGM_BANK			 = $05008A01 ; Bank - Roll ship left / right
DIAXIS_FLYINGM_PITCH			 = $05010A02 ; Pitch - Nose up / down
DIAXIS_FLYINGM_THROTTLE 		 = $05039203 ; Throttle - faster / slower
DIBUTTON_FLYINGM_FIRE			 = $05000C01 ; Fire
DIBUTTON_FLYINGM_WEAPONS		 = $05000C02 ; Select next weapon
DIBUTTON_FLYINGM_TARGET 		 = $05000C03 ; Selects next available target
DIBUTTON_FLYINGM_MENU			 = $050004FD ; Show menu options
;--- Priority 2 controls                            ---

DIHATSWITCH_FLYINGM_GLANCE		 = $05004601 ; Look around
DIBUTTON_FLYINGM_COUNTER		 = $05005C04 ; Activate counter measures
DIAXIS_FLYINGM_RUDDER			 = $05024A04 ; Rudder - Yaw ship left/right
DIAXIS_FLYINGM_BRAKE			 = $05046205 ; Brake-axis
DIBUTTON_FLYINGM_VIEW			 = $05006405 ; Cycle through view options
DIBUTTON_FLYINGM_DISPLAY		 = $05006406 ; Select next dashboard option
DIAXIS_FLYINGM_FLAPS			 = $05055206 ; Flaps
DIBUTTON_FLYINGM_FLAPSUP		 = $05005407 ; Increment stepping up until fully retracted
DIBUTTON_FLYINGM_FLAPSDOWN		 = $05005408 ; Decrement stepping down until fully extended
DIBUTTON_FLYINGM_FIRESECONDARY		 = $05004C09 ; Alternative fire button
DIBUTTON_FLYINGM_GEAR			 = $0500640A ; Gear up / down
DIBUTTON_FLYINGM_BRAKE_LINK		 = $050464E0 ; Fallback brake button
DIBUTTON_FLYINGM_FASTER_LINK		 = $0503D4E0 ; Fallback throttle up button
DIBUTTON_FLYINGM_SLOWER_LINK		 = $0503D4E8 ; Fallback throttle down button
DIBUTTON_FLYINGM_GLANCE_LEFT_LINK	 = $0507C4E4 ; Fallback Glance Left button
DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK	 = $0507C4EC ; Fallback Glance Right button
DIBUTTON_FLYINGM_GLANCE_UP_LINK 	 = $0507C4E0 ; Fallback Glance Up button
DIBUTTON_FLYINGM_GLANCE_DOWN_LINK	 = $0507C4E8 ; Fallback Glance Down button
DIBUTTON_FLYINGM_DEVICE 		 = $050044FE ; Show input device and controls
DIBUTTON_FLYINGM_PAUSE			 = $050044FC ; Start / Pause / Restart game

;--- Flight Simulator - Combat Helicopter
;Combat from helicopter is primary objective  ---
DIVIRTUAL_FLYING_HELICOPTER		 = $06000000
DIAXIS_FLYINGH_BANK			 = $06008A01 ; Bank - Roll ship left / right
DIAXIS_FLYINGH_PITCH			 = $06010A02 ; Pitch - Nose up / down
DIAXIS_FLYINGH_COLLECTIVE		 = $06018A03 ; Collective - Blade pitch/power
DIBUTTON_FLYINGH_FIRE			 = $06001401 ; Fire
DIBUTTON_FLYINGH_WEAPONS		 = $06001402 ; Select next weapon
DIBUTTON_FLYINGH_TARGET 		 = $06001403 ; Selects next available target
DIBUTTON_FLYINGH_MENU			 = $060004FD ; Show menu options
;--- Priority 2 controls                            ---

DIHATSWITCH_FLYINGH_GLANCE		 = $06004601 ; Look around
DIAXIS_FLYINGH_TORQUE			 = $06025A04 ; Torque - Rotate ship around left / right axis
DIAXIS_FLYINGH_THROTTLE 		 = $0603DA05 ; Throttle
DIBUTTON_FLYINGH_COUNTER		 = $06005404 ; Activate counter measures
DIBUTTON_FLYINGH_VIEW			 = $06006405 ; Cycle through view options
DIBUTTON_FLYINGH_GEAR			 = $06006406 ; Gear up / down
DIBUTTON_FLYINGH_FIRESECONDARY		 = $06004C07 ; Alternative fire button
DIBUTTON_FLYINGH_FASTER_LINK		 = $0603DCE0 ; Fallback throttle up button
DIBUTTON_FLYINGH_SLOWER_LINK		 = $0603DCE8 ; Fallback throttle down button
DIBUTTON_FLYINGH_GLANCE_LEFT_LINK	 = $0607C4E4 ; Fallback Glance Left button
DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK	 = $0607C4EC ; Fallback Glance Right button
DIBUTTON_FLYINGH_GLANCE_UP_LINK 	 = $0607C4E0 ; Fallback Glance Up button
DIBUTTON_FLYINGH_GLANCE_DOWN_LINK	 = $0607C4E8 ; Fallback Glance Down button
DIBUTTON_FLYINGH_DEVICE 		 = $060044FE ; Show input device and controls
DIBUTTON_FLYINGH_PAUSE			 = $060044FC ; Start / Pause / Restart game

;--- Space Simulator - Combat
;Space Simulator with weapons  ---
DIVIRTUAL_SPACESIM			 = $07000000
DIAXIS_SPACESIM_LATERAL 		 = $07008201 ; Move ship left / right
DIAXIS_SPACESIM_MOVE			 = $07010202 ; Move ship forward/backward
DIAXIS_SPACESIM_THROTTLE		 = $07038203 ; Throttle - Engine speed
DIBUTTON_SPACESIM_FIRE			 = $07000401 ; Fire
DIBUTTON_SPACESIM_WEAPONS		 = $07000402 ; Select next weapon
DIBUTTON_SPACESIM_TARGET		 = $07000403 ; Selects next available target
DIBUTTON_SPACESIM_MENU			 = $070004FD ; Show menu options
;--- Priority 2 controls                            ---

DIHATSWITCH_SPACESIM_GLANCE		 = $07004601 ; Look around
DIAXIS_SPACESIM_CLIMB			 = $0701C204 ; Climb - Pitch ship up/down
DIAXIS_SPACESIM_ROTATE			 = $07024205 ; Rotate - Turn ship left/right
DIBUTTON_SPACESIM_VIEW			 = $07004404 ; Cycle through view options
DIBUTTON_SPACESIM_DISPLAY		 = $07004405 ; Select next dashboard / heads up display option
DIBUTTON_SPACESIM_RAISE 		 = $07004406 ; Raise ship while maintaining current pitch
DIBUTTON_SPACESIM_LOWER 		 = $07004407 ; Lower ship while maintaining current pitch
DIBUTTON_SPACESIM_GEAR			 = $07004408 ; Gear up / down
DIBUTTON_SPACESIM_FIRESECONDARY 	 = $07004409 ; Alternative fire button
DIBUTTON_SPACESIM_LEFT_LINK		 = $0700C4E4 ; Fallback move left button
DIBUTTON_SPACESIM_RIGHT_LINK		 = $0700C4EC ; Fallback move right button
DIBUTTON_SPACESIM_FORWARD_LINK		 = $070144E0 ; Fallback move forward button
DIBUTTON_SPACESIM_BACKWARD_LINK 	 = $070144E8 ; Fallback move backwards button
DIBUTTON_SPACESIM_FASTER_LINK		 = $0703C4E0 ; Fallback throttle up button
DIBUTTON_SPACESIM_SLOWER_LINK		 = $0703C4E8 ; Fallback throttle down button
DIBUTTON_SPACESIM_TURN_LEFT_LINK	 = $070244E4 ; Fallback turn left button
DIBUTTON_SPACESIM_TURN_RIGHT_LINK	 = $070244EC ; Fallback turn right button
DIBUTTON_SPACESIM_GLANCE_LEFT_LINK	 = $0707C4E4 ; Fallback Glance Left button
DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK	 = $0707C4EC ; Fallback Glance Right button
DIBUTTON_SPACESIM_GLANCE_UP_LINK	 = $0707C4E0 ; Fallback Glance Up button
DIBUTTON_SPACESIM_GLANCE_DOWN_LINK	 = $0707C4E8 ; Fallback Glance Down button
DIBUTTON_SPACESIM_DEVICE		 = $070044FE ; Show input device and controls
DIBUTTON_SPACESIM_PAUSE 		 = $070044FC ; Start / Pause / Restart game

;--- Fighting - First Person
;Hand to Hand combat is primary objective  ---
DIVIRTUAL_FIGHTING_HAND2HAND		 = $08000000
DIAXIS_FIGHTINGH_LATERAL		 = $08008201 ; Sidestep left/right
DIAXIS_FIGHTINGH_MOVE			 = $08010202 ; Move forward/backward
DIBUTTON_FIGHTINGH_PUNCH		 = $08000401 ; Punch
DIBUTTON_FIGHTINGH_KICK 		 = $08000402 ; Kick
DIBUTTON_FIGHTINGH_BLOCK		 = $08000403 ; Block
DIBUTTON_FIGHTINGH_CROUCH		 = $08000404 ; Crouch
DIBUTTON_FIGHTINGH_JUMP 		 = $08000405 ; Jump
DIBUTTON_FIGHTINGH_SPECIAL1		 = $08000406 ; Apply first special move
DIBUTTON_FIGHTINGH_SPECIAL2		 = $08000407 ; Apply second special move
DIBUTTON_FIGHTINGH_MENU 		 = $080004FD ; Show menu options
;--- Priority 2 controls                            ---

DIBUTTON_FIGHTINGH_SELECT		 = $08004408 ; Select special move
DIHATSWITCH_FIGHTINGH_SLIDE		 = $08004601 ; Look around
DIBUTTON_FIGHTINGH_DISPLAY		 = $08004409 ; Shows next on-screen display option
DIAXIS_FIGHTINGH_ROTATE 		 = $08024203 ; Rotate - Turn body left/right
DIBUTTON_FIGHTINGH_DODGE		 = $0800440A ; Dodge
DIBUTTON_FIGHTINGH_LEFT_LINK		 = $0800C4E4 ; Fallback left sidestep button
DIBUTTON_FIGHTINGH_RIGHT_LINK		 = $0800C4EC ; Fallback right sidestep button
DIBUTTON_FIGHTINGH_FORWARD_LINK 	 = $080144E0 ; Fallback forward button
DIBUTTON_FIGHTINGH_BACKWARD_LINK	 = $080144E8 ; Fallback backward button
DIBUTTON_FIGHTINGH_DEVICE		 = $080044FE ; Show input device and controls
DIBUTTON_FIGHTINGH_PAUSE		 = $080044FC ; Start / Pause / Restart game

;--- Fighting - First Person Shooting
;Navigation and combat are primary objectives  ---
DIVIRTUAL_FIGHTING_FPS			 = $09000000
DIAXIS_FPS_ROTATE			 = $09008201 ; Rotate character left/right
DIAXIS_FPS_MOVE 			 = $09010202 ; Move forward/backward
DIBUTTON_FPS_FIRE			 = $09000401 ; Fire
DIBUTTON_FPS_WEAPONS			 = $09000402 ; Select next weapon
DIBUTTON_FPS_APPLY			 = $09000403 ; Use item
DIBUTTON_FPS_SELECT			 = $09000404 ; Select next inventory item
DIBUTTON_FPS_CROUCH			 = $09000405 ; Crouch/ climb down/ swim down
DIBUTTON_FPS_JUMP			 = $09000406 ; Jump/ climb up/ swim up
DIAXIS_FPS_LOOKUPDOWN			 = $09018203 ; Look up / down
DIBUTTON_FPS_STRAFE			 = $09000407 ; Enable strafing while active
DIBUTTON_FPS_MENU			 = $090004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_FPS_GLANCE			 = $09004601 ; Look around
DIBUTTON_FPS_DISPLAY			 = $09004408 ; Shows next on-screen display option/ map
DIAXIS_FPS_SIDESTEP			 = $09024204 ; Sidestep
DIBUTTON_FPS_DODGE			 = $09004409 ; Dodge
DIBUTTON_FPS_GLANCEL			 = $0900440A ; Glance Left
DIBUTTON_FPS_GLANCER			 = $0900440B ; Glance Right
DIBUTTON_FPS_FIRESECONDARY		 = $0900440C ; Alternative fire button
DIBUTTON_FPS_ROTATE_LEFT_LINK		 = $0900C4E4 ; Fallback rotate left button
DIBUTTON_FPS_ROTATE_RIGHT_LINK		 = $0900C4EC ; Fallback rotate right button
DIBUTTON_FPS_FORWARD_LINK		 = $090144E0 ; Fallback forward button
DIBUTTON_FPS_BACKWARD_LINK		 = $090144E8 ; Fallback backward button
DIBUTTON_FPS_GLANCE_UP_LINK		 = $0901C4E0 ; Fallback look up button
DIBUTTON_FPS_GLANCE_DOWN_LINK		 = $0901C4E8 ; Fallback look down button
DIBUTTON_FPS_STEP_LEFT_LINK		 = $090244E4 ; Fallback step left button
DIBUTTON_FPS_STEP_RIGHT_LINK		 = $090244EC ; Fallback step right button
DIBUTTON_FPS_DEVICE			 = $090044FE ; Show input device and controls
DIBUTTON_FPS_PAUSE			 = $090044FC ; Start / Pause / Restart game

;--- Fighting - Third Person action
;Perspective of camera is behind the main character  ---
DIVIRTUAL_FIGHTING_THIRDPERSON		 = $0A000000
DIAXIS_TPS_TURN 			 = $0A020201 ; Turn left/right
DIAXIS_TPS_MOVE 			 = $0A010202 ; Move forward/backward
DIBUTTON_TPS_RUN			 = $0A000401 ; Run or walk toggle switch
DIBUTTON_TPS_ACTION			 = $0A000402 ; Action Button
DIBUTTON_TPS_SELECT			 = $0A000403 ; Select next weapon
DIBUTTON_TPS_USE			 = $0A000404 ; Use inventory item currently selected
DIBUTTON_TPS_JUMP			 = $0A000405 ; Character Jumps
DIBUTTON_TPS_MENU			 = $0A0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_TPS_GLANCE			 = $0A004601 ; Look around
DIBUTTON_TPS_VIEW			 = $0A004406 ; Select camera view
DIBUTTON_TPS_STEPLEFT			 = $0A004407 ; Character takes a left step
DIBUTTON_TPS_STEPRIGHT			 = $0A004408 ; Character takes a right step
DIAXIS_TPS_STEP 			 = $0A00C203 ; Character steps left/right
DIBUTTON_TPS_DODGE			 = $0A004409 ; Character dodges or ducks
DIBUTTON_TPS_INVENTORY			 = $0A00440A ; Cycle through inventory
DIBUTTON_TPS_TURN_LEFT_LINK		 = $0A0244E4 ; Fallback turn left button
DIBUTTON_TPS_TURN_RIGHT_LINK		 = $0A0244EC ; Fallback turn right button
DIBUTTON_TPS_FORWARD_LINK		 = $0A0144E0 ; Fallback forward button
DIBUTTON_TPS_BACKWARD_LINK		 = $0A0144E8 ; Fallback backward button
DIBUTTON_TPS_GLANCE_UP_LINK		 = $0A07C4E0 ; Fallback look up button
DIBUTTON_TPS_GLANCE_DOWN_LINK		 = $0A07C4E8 ; Fallback look down button
DIBUTTON_TPS_GLANCE_LEFT_LINK		 = $0A07C4E4 ; Fallback glance up button
DIBUTTON_TPS_GLANCE_RIGHT_LINK		 = $0A07C4EC ; Fallback glance right button
DIBUTTON_TPS_DEVICE			 = $0A0044FE ; Show input device and controls
DIBUTTON_TPS_PAUSE			 = $0A0044FC ; Start / Pause / Restart game

;--- Strategy - Role Playing
;Navigation and problem solving are primary actions  ---
DIVIRTUAL_STRATEGY_ROLEPLAYING		 = $0B000000
DIAXIS_STRATEGYR_LATERAL		 = $0B008201 ; sidestep - left/right
DIAXIS_STRATEGYR_MOVE			 = $0B010202 ; move forward/backward
DIBUTTON_STRATEGYR_GET			 = $0B000401 ; Acquire item
DIBUTTON_STRATEGYR_APPLY		 = $0B000402 ; Use selected item
DIBUTTON_STRATEGYR_SELECT		 = $0B000403 ; Select nextitem
DIBUTTON_STRATEGYR_ATTACK		 = $0B000404 ; Attack
DIBUTTON_STRATEGYR_CAST 		 = $0B000405 ; Cast Spell
DIBUTTON_STRATEGYR_CROUCH		 = $0B000406 ; Crouch
DIBUTTON_STRATEGYR_JUMP 		 = $0B000407 ; Jump
DIBUTTON_STRATEGYR_MENU 		 = $0B0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_STRATEGYR_GLANCE		 = $0B004601 ; Look around
DIBUTTON_STRATEGYR_MAP			 = $0B004408 ; Cycle through map options
DIBUTTON_STRATEGYR_DISPLAY		 = $0B004409 ; Shows next on-screenDIsplay option
DIAXIS_STRATEGYR_ROTATE 		 = $0B024203 ; Turn body left/right
DIBUTTON_STRATEGYR_LEFT_LINK		 = $0B00C4E4 ; Fallback sidestep left button
DIBUTTON_STRATEGYR_RIGHT_LINK		 = $0B00C4EC ; Fallback sidestep right button
DIBUTTON_STRATEGYR_FORWARD_LINK 	 = $0B0144E0 ; Fallback move forward button
DIBUTTON_STRATEGYR_BACK_LINK		 = $0B0144E8 ; Fallback move backward button
DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK	 = $0B0244E4 ; Fallback turn body left button
DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK	 = $0B0244EC ; Fallback turn body right button
DIBUTTON_STRATEGYR_DEVICE		 = $0B0044FE ; Show input device and controls
DIBUTTON_STRATEGYR_PAUSE		 = $0B0044FC ; Start / Pause / Restart game

;--- Strategy - Turn based
;Navigation and problem solving are primary actions  ---
DIVIRTUAL_STRATEGY_TURN 		 = $0C000000
DIAXIS_STRATEGYT_LATERAL		 = $0C008201 ; Sidestep left/right
DIAXIS_STRATEGYT_MOVE			 = $0C010202 ; Move forward/backwards
DIBUTTON_STRATEGYT_SELECT		 = $0C000401 ; Select unit or object
DIBUTTON_STRATEGYT_INSTRUCT		 = $0C000402 ; Cycle through instructions
DIBUTTON_STRATEGYT_APPLY		 = $0C000403 ; Apply selected instruction
DIBUTTON_STRATEGYT_TEAM 		 = $0C000404 ; Select next team / cycle through all
DIBUTTON_STRATEGYT_TURN 		 = $0C000405 ; Indicate turn over
DIBUTTON_STRATEGYT_MENU 		 = $0C0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_STRATEGYT_ZOOM 		 = $0C004406 ; Zoom - in / out
DIBUTTON_STRATEGYT_MAP			 = $0C004407 ; cycle through map options
DIBUTTON_STRATEGYT_DISPLAY		 = $0C004408 ; shows next on-screenDIsplay options
DIBUTTON_STRATEGYT_LEFT_LINK		 = $0C00C4E4 ; Fallback sidestep left button
DIBUTTON_STRATEGYT_RIGHT_LINK		 = $0C00C4EC ; Fallback sidestep right button
DIBUTTON_STRATEGYT_FORWARD_LINK 	 = $0C0144E0 ; Fallback move forward button
DIBUTTON_STRATEGYT_BACK_LINK		 = $0C0144E8 ; Fallback move back button
DIBUTTON_STRATEGYT_DEVICE		 = $0C0044FE ; Show input device and controls
DIBUTTON_STRATEGYT_PAUSE		 = $0C0044FC ; Start / Pause / Restart game

;--- Sports - Hunting
;Hunting
DIVIRTUAL_SPORTS_HUNTING		 = $0D000000
DIAXIS_HUNTING_LATERAL			 = $0D008201 ; sidestep left/right
DIAXIS_HUNTING_MOVE			 = $0D010202 ; move forward/backwards
DIBUTTON_HUNTING_FIRE			 = $0D000401 ; Fire selected weapon
DIBUTTON_HUNTING_AIM			 = $0D000402 ; Select aim/move
DIBUTTON_HUNTING_WEAPON 		 = $0D000403 ; Select next weapon
DIBUTTON_HUNTING_BINOCULAR		 = $0D000404 ; Look through Binoculars
DIBUTTON_HUNTING_CALL			 = $0D000405 ; Make animal call
DIBUTTON_HUNTING_MAP			 = $0D000406 ; View Map
DIBUTTON_HUNTING_SPECIAL		 = $0D000407 ; Special game operation
DIBUTTON_HUNTING_MENU			 = $0D0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_HUNTING_GLANCE		 = $0D004601 ; Look around
DIBUTTON_HUNTING_DISPLAY		 = $0D004408 ; show next on-screenDIsplay option
DIAXIS_HUNTING_ROTATE			 = $0D024203 ; Turn body left/right
DIBUTTON_HUNTING_CROUCH 		 = $0D004409 ; Crouch/ Climb / Swim down
DIBUTTON_HUNTING_JUMP			 = $0D00440A ; Jump/ Climb up / Swim up
DIBUTTON_HUNTING_FIRESECONDARY		 = $0D00440B ; Alternative fire button
DIBUTTON_HUNTING_LEFT_LINK		 = $0D00C4E4 ; Fallback sidestep left button
DIBUTTON_HUNTING_RIGHT_LINK		 = $0D00C4EC ; Fallback sidestep right button
DIBUTTON_HUNTING_FORWARD_LINK		 = $0D0144E0 ; Fallback move forward button
DIBUTTON_HUNTING_BACK_LINK		 = $0D0144E8 ; Fallback move back button
DIBUTTON_HUNTING_ROTATE_LEFT_LINK	 = $0D0244E4 ; Fallback turn body left button
DIBUTTON_HUNTING_ROTATE_RIGHT_LINK	 = $0D0244EC ; Fallback turn body right button
DIBUTTON_HUNTING_DEVICE 		 = $0D0044FE ; Show input device and controls
DIBUTTON_HUNTING_PAUSE			 = $0D0044FC ; Start / Pause / Restart game

;--- Sports - Fishing
;Catching Fish is primary objective   ---
DIVIRTUAL_SPORTS_FISHING		 = $0E000000
DIAXIS_FISHING_LATERAL			 = $0E008201 ; sidestep left/right
DIAXIS_FISHING_MOVE			 = $0E010202 ; move forward/backwards
DIBUTTON_FISHING_CAST			 = $0E000401 ; Cast line
DIBUTTON_FISHING_TYPE			 = $0E000402 ; Select cast type
DIBUTTON_FISHING_BINOCULAR		 = $0E000403 ; Look through Binocular
DIBUTTON_FISHING_BAIT			 = $0E000404 ; Select type of Bait
DIBUTTON_FISHING_MAP			 = $0E000405 ; View Map
DIBUTTON_FISHING_MENU			 = $0E0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_FISHING_GLANCE		 = $0E004601 ; Look around
DIBUTTON_FISHING_DISPLAY		 = $0E004406 ; Show next on-screenDIsplay option
DIAXIS_FISHING_ROTATE			 = $0E024203 ; Turn character left / right
DIBUTTON_FISHING_CROUCH 		 = $0E004407 ; Crouch/ Climb / Swim down
DIBUTTON_FISHING_JUMP			 = $0E004408 ; Jump/ Climb up / Swim up
DIBUTTON_FISHING_LEFT_LINK		 = $0E00C4E4 ; Fallback sidestep left button
DIBUTTON_FISHING_RIGHT_LINK		 = $0E00C4EC ; Fallback sidestep right button
DIBUTTON_FISHING_FORWARD_LINK		 = $0E0144E0 ; Fallback move forward button
DIBUTTON_FISHING_BACK_LINK		 = $0E0144E8 ; Fallback move back button
DIBUTTON_FISHING_ROTATE_LEFT_LINK	 = $0E0244E4 ; Fallback turn body left button
DIBUTTON_FISHING_ROTATE_RIGHT_LINK	 = $0E0244EC ; Fallback turn body right button
DIBUTTON_FISHING_DEVICE 		 = $0E0044FE ; Show input device and controls
DIBUTTON_FISHING_PAUSE			 = $0E0044FC ; Start / Pause / Restart game

;--- Sports - Baseball - Batting
;Batter control is primary objective  ---
DIVIRTUAL_SPORTS_BASEBALL_BAT		 = $0F000000
DIAXIS_BASEBALLB_LATERAL		 = $0F008201 ; Aim left / right
DIAXIS_BASEBALLB_MOVE			 = $0F010202 ; Aim up / down
DIBUTTON_BASEBALLB_SELECT		 = $0F000401 ; cycle through swing options
DIBUTTON_BASEBALLB_NORMAL		 = $0F000402 ; normal swing
DIBUTTON_BASEBALLB_POWER		 = $0F000403 ; swing for the fence
DIBUTTON_BASEBALLB_BUNT 		 = $0F000404 ; bunt
DIBUTTON_BASEBALLB_STEAL		 = $0F000405 ; Base runner attempts to steal a base
DIBUTTON_BASEBALLB_BURST		 = $0F000406 ; Base runner invokes burst of speed
DIBUTTON_BASEBALLB_SLIDE		 = $0F000407 ; Base runner slides into base
DIBUTTON_BASEBALLB_CONTACT		 = $0F000408 ; Contact swing
DIBUTTON_BASEBALLB_MENU 		 = $0F0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_BASEBALLB_NOSTEAL		 = $0F004409 ; Base runner goes back to a base
DIBUTTON_BASEBALLB_BOX			 = $0F00440A ; Enter or exit batting box
DIBUTTON_BASEBALLB_LEFT_LINK		 = $0F00C4E4 ; Fallback sidestep left button
DIBUTTON_BASEBALLB_RIGHT_LINK		 = $0F00C4EC ; Fallback sidestep right button
DIBUTTON_BASEBALLB_FORWARD_LINK 	 = $0F0144E0 ; Fallback move forward button
DIBUTTON_BASEBALLB_BACK_LINK		 = $0F0144E8 ; Fallback move back button
DIBUTTON_BASEBALLB_DEVICE		 = $0F0044FE ; Show input device and controls
DIBUTTON_BASEBALLB_PAUSE		 = $0F0044FC ; Start / Pause / Restart game

;--- Sports - Baseball - Pitching
;Pitcher control is primary objective   ---
DIVIRTUAL_SPORTS_BASEBALL_PITCH 	 = $10000000
DIAXIS_BASEBALLP_LATERAL		 = $10008201 ; Aim left / right
DIAXIS_BASEBALLP_MOVE			 = $10010202 ; Aim up / down
DIBUTTON_BASEBALLP_SELECT		 = $10000401 ; cycle through pitch selections
DIBUTTON_BASEBALLP_PITCH		 = $10000402 ; throw pitch
DIBUTTON_BASEBALLP_BASE 		 = $10000403 ; select base to throw to
DIBUTTON_BASEBALLP_THROW		 = $10000404 ; throw to base
DIBUTTON_BASEBALLP_FAKE 		 = $10000405 ; Fake a throw to a base
DIBUTTON_BASEBALLP_MENU 		 = $100004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_BASEBALLP_WALK 		 = $10004406 ; Throw intentional walk / pitch out
DIBUTTON_BASEBALLP_LOOK 		 = $10004407 ; Look at runners on bases
DIBUTTON_BASEBALLP_LEFT_LINK		 = $1000C4E4 ; Fallback sidestep left button
DIBUTTON_BASEBALLP_RIGHT_LINK		 = $1000C4EC ; Fallback sidestep right button
DIBUTTON_BASEBALLP_FORWARD_LINK 	 = $100144E0 ; Fallback move forward button
DIBUTTON_BASEBALLP_BACK_LINK		 = $100144E8 ; Fallback move back button
DIBUTTON_BASEBALLP_DEVICE		 = $100044FE ; Show input device and controls
DIBUTTON_BASEBALLP_PAUSE		 = $100044FC ; Start / Pause / Restart game

;--- Sports - Baseball - Fielding
;Fielder control is primary objective  ---
DIVIRTUAL_SPORTS_BASEBALL_FIELD 	 = $11000000
DIAXIS_BASEBALLF_LATERAL		 = $11008201 ; Aim left / right
DIAXIS_BASEBALLF_MOVE			 = $11010202 ; Aim up / down
DIBUTTON_BASEBALLF_NEAREST		 = $11000401 ; Switch to fielder nearest to the ball
DIBUTTON_BASEBALLF_THROW1		 = $11000402 ; Make conservative throw
DIBUTTON_BASEBALLF_THROW2		 = $11000403 ; Make aggressive throw
DIBUTTON_BASEBALLF_BURST		 = $11000404 ; Invoke burst of speed
DIBUTTON_BASEBALLF_JUMP 		 = $11000405 ; Jump to catch ball
DIBUTTON_BASEBALLF_DIVE 		 = $11000406 ;DIve to catch ball
DIBUTTON_BASEBALLF_MENU 		 = $110004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_BASEBALLF_SHIFTIN		 = $11004407 ; Shift the infield positioning
DIBUTTON_BASEBALLF_SHIFTOUT		 = $11004408 ; Shift the outfield positioning
DIBUTTON_BASEBALLF_AIM_LEFT_LINK	 = $1100C4E4 ; Fallback aim left button
DIBUTTON_BASEBALLF_AIM_RIGHT_LINK	 = $1100C4EC ; Fallback aim right button
DIBUTTON_BASEBALLF_FORWARD_LINK 	 = $110144E0 ; Fallback move forward button
DIBUTTON_BASEBALLF_BACK_LINK		 = $110144E8 ; Fallback move back button
DIBUTTON_BASEBALLF_DEVICE		 = $110044FE ; Show input device and controls
DIBUTTON_BASEBALLF_PAUSE		 = $110044FC ; Start / Pause / Restart game

;--- Sports - Basketball - Offense
;Offense  ---
DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE	 = $12000000
DIAXIS_BBALLO_LATERAL			 = $12008201 ; left / right
DIAXIS_BBALLO_MOVE			 = $12010202 ; up / down
DIBUTTON_BBALLO_SHOOT			 = $12000401 ; shoot basket
DIBUTTON_BBALLO_DUNK			 = $12000402 ; dunk basket
DIBUTTON_BBALLO_PASS			 = $12000403 ; throw pass
DIBUTTON_BBALLO_FAKE			 = $12000404 ; fake shot or pass
DIBUTTON_BBALLO_SPECIAL 		 = $12000405 ; apply special move
DIBUTTON_BBALLO_PLAYER			 = $12000406 ; select next player
DIBUTTON_BBALLO_BURST			 = $12000407 ; invoke burst
DIBUTTON_BBALLO_CALL			 = $12000408 ; call for ball / pass to me
DIBUTTON_BBALLO_MENU			 = $120004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_BBALLO_GLANCE		 = $12004601 ; scroll view
DIBUTTON_BBALLO_SCREEN			 = $12004409 ; Call for screen
DIBUTTON_BBALLO_PLAY			 = $1200440A ; Call for specific offensive play
DIBUTTON_BBALLO_JAB			 = $1200440B ; Initiate fake drive to basket
DIBUTTON_BBALLO_POST			 = $1200440C ; Perform post move
DIBUTTON_BBALLO_TIMEOUT 		 = $1200440D ; Time Out
DIBUTTON_BBALLO_SUBSTITUTE		 = $1200440E ; substitute one player for another
DIBUTTON_BBALLO_LEFT_LINK		 = $1200C4E4 ; Fallback sidestep left button
DIBUTTON_BBALLO_RIGHT_LINK		 = $1200C4EC ; Fallback sidestep right button
DIBUTTON_BBALLO_FORWARD_LINK		 = $120144E0 ; Fallback move forward button
DIBUTTON_BBALLO_BACK_LINK		 = $120144E8 ; Fallback move back button
DIBUTTON_BBALLO_DEVICE			 = $120044FE ; Show input device and controls
DIBUTTON_BBALLO_PAUSE			 = $120044FC ; Start / Pause / Restart game

;--- Sports - Basketball - Defense
;Defense  ---
DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE	 = $13000000
DIAXIS_BBALLD_LATERAL			 = $13008201 ; left / right
DIAXIS_BBALLD_MOVE			 = $13010202 ; up / down
DIBUTTON_BBALLD_JUMP			 = $13000401 ; jump to block shot
DIBUTTON_BBALLD_STEAL			 = $13000402 ; attempt to steal ball
DIBUTTON_BBALLD_FAKE			 = $13000403 ; fake block or steal
DIBUTTON_BBALLD_SPECIAL 		 = $13000404 ; apply special move
DIBUTTON_BBALLD_PLAYER			 = $13000405 ; select next player
DIBUTTON_BBALLD_BURST			 = $13000406 ; invoke burst
DIBUTTON_BBALLD_PLAY			 = $13000407 ; call for specific defensive play
DIBUTTON_BBALLD_MENU			 = $130004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_BBALLD_GLANCE		 = $13004601 ; scroll view
DIBUTTON_BBALLD_TIMEOUT 		 = $13004408 ; Time Out
DIBUTTON_BBALLD_SUBSTITUTE		 = $13004409 ; substitute one player for another
DIBUTTON_BBALLD_LEFT_LINK		 = $1300C4E4 ; Fallback sidestep left button
DIBUTTON_BBALLD_RIGHT_LINK		 = $1300C4EC ; Fallback sidestep right button
DIBUTTON_BBALLD_FORWARD_LINK		 = $130144E0 ; Fallback move forward button
DIBUTTON_BBALLD_BACK_LINK		 = $130144E8 ; Fallback move back button
DIBUTTON_BBALLD_DEVICE			 = $130044FE ; Show input device and controls
DIBUTTON_BBALLD_PAUSE			 = $130044FC ; Start / Pause / Restart game

;--- Sports - Football - Play
;Play selection  ---
DIVIRTUAL_SPORTS_FOOTBALL_FIELD 	 = $14000000
DIBUTTON_FOOTBALLP_PLAY 		 = $14000401 ; cycle through available plays
DIBUTTON_FOOTBALLP_SELECT		 = $14000402 ; select play
DIBUTTON_FOOTBALLP_HELP 		 = $14000403 ; Bring up pop-up help
DIBUTTON_FOOTBALLP_MENU 		 = $140004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_FOOTBALLP_DEVICE		 = $140044FE ; Show input device and controls
DIBUTTON_FOOTBALLP_PAUSE		 = $140044FC ; Start / Pause / Restart game

;--- Sports - Football - QB
;Offense: Quarterback / Kicker  ---
DIVIRTUAL_SPORTS_FOOTBALL_QBCK		 = $15000000
DIAXIS_FOOTBALLQ_LATERAL		 = $15008201 ; Move / Aim: left / right
DIAXIS_FOOTBALLQ_MOVE			 = $15010202 ; Move / Aim: up / down
DIBUTTON_FOOTBALLQ_SELECT		 = $15000401 ; Select
DIBUTTON_FOOTBALLQ_SNAP 		 = $15000402 ; snap ball - start play
DIBUTTON_FOOTBALLQ_JUMP 		 = $15000403 ; jump over defender
DIBUTTON_FOOTBALLQ_SLIDE		 = $15000404 ;DIve/Slide
DIBUTTON_FOOTBALLQ_PASS 		 = $15000405 ; throws pass to receiver
DIBUTTON_FOOTBALLQ_FAKE 		 = $15000406 ; pump fake pass or fake kick
DIBUTTON_FOOTBALLQ_MENU 		 = $150004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_FOOTBALLQ_FAKESNAP		 = $15004407 ; Fake snap
DIBUTTON_FOOTBALLQ_MOTION		 = $15004408 ; Send receivers in motion
DIBUTTON_FOOTBALLQ_AUDIBLE		 = $15004409 ; Change offensive play at line of scrimmage
DIBUTTON_FOOTBALLQ_LEFT_LINK		 = $1500C4E4 ; Fallback sidestep left button
DIBUTTON_FOOTBALLQ_RIGHT_LINK		 = $1500C4EC ; Fallback sidestep right button
DIBUTTON_FOOTBALLQ_FORWARD_LINK 	 = $150144E0 ; Fallback move forward button
DIBUTTON_FOOTBALLQ_BACK_LINK		 = $150144E8 ; Fallback move back button
DIBUTTON_FOOTBALLQ_DEVICE		 = $150044FE ; Show input device and controls
DIBUTTON_FOOTBALLQ_PAUSE		 = $150044FC ; Start / Pause / Restart game

;--- Sports - Football - Offense
;Offense - Runner  ---
DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE	 = $16000000
DIAXIS_FOOTBALLO_LATERAL		 = $16008201 ; Move / Aim: left / right
DIAXIS_FOOTBALLO_MOVE			 = $16010202 ; Move / Aim: up / down
DIBUTTON_FOOTBALLO_JUMP 		 = $16000401 ; jump or hurdle over defender
DIBUTTON_FOOTBALLO_LEFTARM		 = $16000402 ; holds out left arm
DIBUTTON_FOOTBALLO_RIGHTARM		 = $16000403 ; holds out right arm
DIBUTTON_FOOTBALLO_THROW		 = $16000404 ; throw pass or lateral ball to another runner
DIBUTTON_FOOTBALLO_SPIN 		 = $16000405 ; Spin to avoid defenders
DIBUTTON_FOOTBALLO_MENU 		 = $160004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_FOOTBALLO_JUKE 		 = $16004406 ; Use special move to avoid defenders
DIBUTTON_FOOTBALLO_SHOULDER		 = $16004407 ; Lower shoulder to run over defenders
DIBUTTON_FOOTBALLO_TURBO		 = $16004408 ; Speed burst past defenders
DIBUTTON_FOOTBALLO_DIVE 		 = $16004409 ;DIve over defenders
DIBUTTON_FOOTBALLO_ZOOM 		 = $1600440A ; Zoom view in / out
DIBUTTON_FOOTBALLO_SUBSTITUTE		 = $1600440B ; substitute one player for another
DIBUTTON_FOOTBALLO_LEFT_LINK		 = $1600C4E4 ; Fallback sidestep left button
DIBUTTON_FOOTBALLO_RIGHT_LINK		 = $1600C4EC ; Fallback sidestep right button
DIBUTTON_FOOTBALLO_FORWARD_LINK 	 = $160144E0 ; Fallback move forward button
DIBUTTON_FOOTBALLO_BACK_LINK		 = $160144E8 ; Fallback move back button
DIBUTTON_FOOTBALLO_DEVICE		 = $160044FE ; Show input device and controls
DIBUTTON_FOOTBALLO_PAUSE		 = $160044FC ; Start / Pause / Restart game

;--- Sports - Football - Defense
;Defense     ---
DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE	 = $17000000
DIAXIS_FOOTBALLD_LATERAL		 = $17008201 ; Move / Aim: left / right
DIAXIS_FOOTBALLD_MOVE			 = $17010202 ; Move / Aim: up / down
DIBUTTON_FOOTBALLD_PLAY 		 = $17000401 ; cycle through available plays
DIBUTTON_FOOTBALLD_SELECT		 = $17000402 ; select player closest to the ball
DIBUTTON_FOOTBALLD_JUMP 		 = $17000403 ; jump to intercept or block
DIBUTTON_FOOTBALLD_TACKLE		 = $17000404 ; tackler runner
DIBUTTON_FOOTBALLD_FAKE 		 = $17000405 ; hold down to fake tackle or intercept
DIBUTTON_FOOTBALLD_SUPERTACKLE		 = $17000406 ; Initiate special tackle
DIBUTTON_FOOTBALLD_MENU 		 = $170004FD ; Show menu options

;--- Priority 2 controls                            ---
DIBUTTON_FOOTBALLD_SPIN 		 = $17004407 ; Spin to beat offensive line
DIBUTTON_FOOTBALLD_SWIM 		 = $17004408 ; Swim to beat the offensive line
DIBUTTON_FOOTBALLD_BULLRUSH		 = $17004409 ; Bull rush the offensive line
DIBUTTON_FOOTBALLD_RIP			 = $1700440A ; Rip the offensive line
DIBUTTON_FOOTBALLD_AUDIBLE		 = $1700440B ; Change defensive play at the line of scrimmage
DIBUTTON_FOOTBALLD_ZOOM 		 = $1700440C ; Zoom view in / out
DIBUTTON_FOOTBALLD_SUBSTITUTE		 = $1700440D ; substitute one player for another
DIBUTTON_FOOTBALLD_LEFT_LINK		 = $1700C4E4 ; Fallback sidestep left button
DIBUTTON_FOOTBALLD_RIGHT_LINK		 = $1700C4EC ; Fallback sidestep right button
DIBUTTON_FOOTBALLD_FORWARD_LINK 	 = $170144E0 ; Fallback move forward button
DIBUTTON_FOOTBALLD_BACK_LINK		 = $170144E8 ; Fallback move back button
DIBUTTON_FOOTBALLD_DEVICE		 = $170044FE ; Show input device and controls
DIBUTTON_FOOTBALLD_PAUSE		 = $170044FC ; Start / Pause / Restart game

;--- Sports - Golf
DIVIRTUAL_SPORTS_GOLF			 = $18000000
DIAXIS_GOLF_LATERAL			 = $18008201 ; Move / Aim: left / right
DIAXIS_GOLF_MOVE			 = $18010202 ; Move / Aim: up / down
DIBUTTON_GOLF_SWING			 = $18000401 ; swing club
DIBUTTON_GOLF_SELECT			 = $18000402 ; cycle between: club / swing strength / ball arc / ball spin
DIBUTTON_GOLF_UP			 = $18000403 ; increase selection
DIBUTTON_GOLF_DOWN			 = $18000404 ; decrease selection
DIBUTTON_GOLF_TERRAIN			 = $18000405 ; shows terrain detail
DIBUTTON_GOLF_FLYBY			 = $18000406 ; view the hole via a flyby
DIBUTTON_GOLF_MENU			 = $180004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_GOLF_SCROLL 		 = $18004601 ; scroll view
DIBUTTON_GOLF_ZOOM			 = $18004407 ; Zoom view in / out
DIBUTTON_GOLF_TIMEOUT			 = $18004408 ; Call for time out
DIBUTTON_GOLF_SUBSTITUTE		 = $18004409 ; substitute one player for another
DIBUTTON_GOLF_LEFT_LINK 		 = $1800C4E4 ; Fallback sidestep left button
DIBUTTON_GOLF_RIGHT_LINK		 = $1800C4EC ; Fallback sidestep right button
DIBUTTON_GOLF_FORWARD_LINK		 = $180144E0 ; Fallback move forward button
DIBUTTON_GOLF_BACK_LINK 		 = $180144E8 ; Fallback move back button
DIBUTTON_GOLF_DEVICE			 = $180044FE ; Show input device and controls
DIBUTTON_GOLF_PAUSE			 = $180044FC ; Start / Pause / Restart game

;--- Sports - Hockey - Offense
;Offense       ---
DIVIRTUAL_SPORTS_HOCKEY_OFFENSE 	 = $19000000
DIAXIS_HOCKEYO_LATERAL			 = $19008201 ; Move / Aim: left / right
DIAXIS_HOCKEYO_MOVE			 = $19010202 ; Move / Aim: up / down
DIBUTTON_HOCKEYO_SHOOT			 = $19000401 ; Shoot
DIBUTTON_HOCKEYO_PASS			 = $19000402 ; pass the puck
DIBUTTON_HOCKEYO_BURST			 = $19000403 ; invoke speed burst
DIBUTTON_HOCKEYO_SPECIAL		 = $19000404 ; invoke special move
DIBUTTON_HOCKEYO_FAKE			 = $19000405 ; hold down to fake pass or kick
DIBUTTON_HOCKEYO_MENU			 = $190004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_HOCKEYO_SCROLL		 = $19004601 ; scroll view
DIBUTTON_HOCKEYO_ZOOM			 = $19004406 ; Zoom view in / out
DIBUTTON_HOCKEYO_STRATEGY		 = $19004407 ; Invoke coaching menu for strategy help
DIBUTTON_HOCKEYO_TIMEOUT		 = $19004408 ; Call for time out
DIBUTTON_HOCKEYO_SUBSTITUTE		 = $19004409 ; substitute one player for another
DIBUTTON_HOCKEYO_LEFT_LINK		 = $1900C4E4 ; Fallback sidestep left button
DIBUTTON_HOCKEYO_RIGHT_LINK		 = $1900C4EC ; Fallback sidestep right button
DIBUTTON_HOCKEYO_FORWARD_LINK		 = $190144E0 ; Fallback move forward button
DIBUTTON_HOCKEYO_BACK_LINK		 = $190144E8 ; Fallback move back button
DIBUTTON_HOCKEYO_DEVICE 		 = $190044FE ; Show input device and controls
DIBUTTON_HOCKEYO_PAUSE			 = $190044FC ; Start / Pause / Restart game

;--- Sports - Hockey - Defense
;Defense       ---
DIVIRTUAL_SPORTS_HOCKEY_DEFENSE 	 = $1A000000
DIAXIS_HOCKEYD_LATERAL			 = $1A008201 ; Move / Aim: left / right
DIAXIS_HOCKEYD_MOVE			 = $1A010202 ; Move / Aim: up / down
DIBUTTON_HOCKEYD_PLAYER 		 = $1A000401 ; control player closest to the puck
DIBUTTON_HOCKEYD_STEAL			 = $1A000402 ; attempt steal
DIBUTTON_HOCKEYD_BURST			 = $1A000403 ; speed burst or body check
DIBUTTON_HOCKEYD_BLOCK			 = $1A000404 ; block puck
DIBUTTON_HOCKEYD_FAKE			 = $1A000405 ; hold down to fake tackle or intercept
DIBUTTON_HOCKEYD_MENU			 = $1A0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_HOCKEYD_SCROLL		 = $1A004601 ; scroll view
DIBUTTON_HOCKEYD_ZOOM			 = $1A004406 ; Zoom view in / out
DIBUTTON_HOCKEYD_STRATEGY		 = $1A004407 ; Invoke coaching menu for strategy help
DIBUTTON_HOCKEYD_TIMEOUT		 = $1A004408 ; Call for time out
DIBUTTON_HOCKEYD_SUBSTITUTE		 = $1A004409 ; substitute one player for another
DIBUTTON_HOCKEYD_LEFT_LINK		 = $1A00C4E4 ; Fallback sidestep left button
DIBUTTON_HOCKEYD_RIGHT_LINK		 = $1A00C4EC ; Fallback sidestep right button
DIBUTTON_HOCKEYD_FORWARD_LINK		 = $1A0144E0 ; Fallback move forward button
DIBUTTON_HOCKEYD_BACK_LINK		 = $1A0144E8 ; Fallback move back button
DIBUTTON_HOCKEYD_DEVICE 		 = $1A0044FE ; Show input device and controls
DIBUTTON_HOCKEYD_PAUSE			 = $1A0044FC ; Start / Pause / Restart game

;--- Sports - Hockey - Goalie
;Goal tending  ---
DIVIRTUAL_SPORTS_HOCKEY_GOALIE		 = $1B000000
DIAXIS_HOCKEYG_LATERAL			 = $1B008201 ; Move / Aim: left / right
DIAXIS_HOCKEYG_MOVE			 = $1B010202 ; Move / Aim: up / down
DIBUTTON_HOCKEYG_PASS			 = $1B000401 ; pass puck
DIBUTTON_HOCKEYG_POKE			 = $1B000402 ; poke / check / hack
DIBUTTON_HOCKEYG_STEAL			 = $1B000403 ; attempt steal
DIBUTTON_HOCKEYG_BLOCK			 = $1B000404 ; block puck
DIBUTTON_HOCKEYG_MENU			 = $1B0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_HOCKEYG_SCROLL		 = $1B004601 ; scroll view
DIBUTTON_HOCKEYG_ZOOM			 = $1B004405 ; Zoom view in / out
DIBUTTON_HOCKEYG_STRATEGY		 = $1B004406 ; Invoke coaching menu for strategy help
DIBUTTON_HOCKEYG_TIMEOUT		 = $1B004407 ; Call for time out
DIBUTTON_HOCKEYG_SUBSTITUTE		 = $1B004408 ; substitute one player for another
DIBUTTON_HOCKEYG_LEFT_LINK		 = $1B00C4E4 ; Fallback sidestep left button
DIBUTTON_HOCKEYG_RIGHT_LINK		 = $1B00C4EC ; Fallback sidestep right button
DIBUTTON_HOCKEYG_FORWARD_LINK		 = $1B0144E0 ; Fallback move forward button
DIBUTTON_HOCKEYG_BACK_LINK		 = $1B0144E8 ; Fallback move back button
DIBUTTON_HOCKEYG_DEVICE 		 = $1B0044FE ; Show input device and controls
DIBUTTON_HOCKEYG_PAUSE			 = $1B0044FC ; Start / Pause / Restart game

;--- Sports - Mountain Biking
DIVIRTUAL_SPORTS_BIKING_MOUNTAIN	 = $1C000000
DIAXIS_BIKINGM_TURN			 = $1C008201 ; left / right
DIAXIS_BIKINGM_PEDAL			 = $1C010202 ; Pedal faster / slower / brake
DIBUTTON_BIKINGM_JUMP			 = $1C000401 ; jump over obstacle
DIBUTTON_BIKINGM_CAMERA 		 = $1C000402 ; switch camera view
DIBUTTON_BIKINGM_SPECIAL1		 = $1C000403 ; perform first special move
DIBUTTON_BIKINGM_SELECT 		 = $1C000404 ; Select
DIBUTTON_BIKINGM_SPECIAL2		 = $1C000405 ; perform second special move
DIBUTTON_BIKINGM_MENU			 = $1C0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_BIKINGM_SCROLL		 = $1C004601 ; scroll view
DIBUTTON_BIKINGM_ZOOM			 = $1C004406 ; Zoom view in / out
DIAXIS_BIKINGM_BRAKE			 = $1C044203 ; Brake axis
DIBUTTON_BIKINGM_LEFT_LINK		 = $1C00C4E4 ; Fallback turn left button
DIBUTTON_BIKINGM_RIGHT_LINK		 = $1C00C4EC ; Fallback turn right button
DIBUTTON_BIKINGM_FASTER_LINK		 = $1C0144E0 ; Fallback pedal faster button
DIBUTTON_BIKINGM_SLOWER_LINK		 = $1C0144E8 ; Fallback pedal slower button
DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK	 = $1C0444E8 ; Fallback brake button
DIBUTTON_BIKINGM_DEVICE 		 = $1C0044FE ; Show input device and controls
DIBUTTON_BIKINGM_PAUSE			 = $1C0044FC ; Start / Pause / Restart game

;--- Sports: Skiing / Snowboarding / Skateboarding
DIVIRTUAL_SPORTS_SKIING 		 = $1D000000
DIAXIS_SKIING_TURN			 = $1D008201 ; left / right
DIAXIS_SKIING_SPEED			 = $1D010202 ; faster / slower
DIBUTTON_SKIING_JUMP			 = $1D000401 ; Jump
DIBUTTON_SKIING_CROUCH			 = $1D000402 ; crouch down
DIBUTTON_SKIING_CAMERA			 = $1D000403 ; switch camera view
DIBUTTON_SKIING_SPECIAL1		 = $1D000404 ; perform first special move
DIBUTTON_SKIING_SELECT			 = $1D000405 ; Select
DIBUTTON_SKIING_SPECIAL2		 = $1D000406 ; perform second special move
DIBUTTON_SKIING_MENU			 = $1D0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_SKIING_GLANCE		 = $1D004601 ; scroll view
DIBUTTON_SKIING_ZOOM			 = $1D004407 ; Zoom view in / out
DIBUTTON_SKIING_LEFT_LINK		 = $1D00C4E4 ; Fallback turn left button
DIBUTTON_SKIING_RIGHT_LINK		 = $1D00C4EC ; Fallback turn right button
DIBUTTON_SKIING_FASTER_LINK		 = $1D0144E0 ; Fallback increase speed button
DIBUTTON_SKIING_SLOWER_LINK		 = $1D0144E8 ; Fallback decrease speed button
DIBUTTON_SKIING_DEVICE			 = $1D0044FE ; Show input device and controls
DIBUTTON_SKIING_PAUSE			 = $1D0044FC ; Start / Pause / Restart game

;--- Sports - Soccer - Offense
;Offense       ---
DIVIRTUAL_SPORTS_SOCCER_OFFENSE 	 = $1E000000
DIAXIS_SOCCERO_LATERAL			 = $1E008201 ; Move / Aim: left / right
DIAXIS_SOCCERO_MOVE			 = $1E010202 ; Move / Aim: up / down
DIAXIS_SOCCERO_BEND			 = $1E018203 ; Bend to soccer shot/pass
DIBUTTON_SOCCERO_SHOOT			 = $1E000401 ; Shoot the ball
DIBUTTON_SOCCERO_PASS			 = $1E000402 ; Pass
DIBUTTON_SOCCERO_FAKE			 = $1E000403 ; Fake
DIBUTTON_SOCCERO_PLAYER 		 = $1E000404 ; Select next player
DIBUTTON_SOCCERO_SPECIAL1		 = $1E000405 ; Apply special move
DIBUTTON_SOCCERO_SELECT 		 = $1E000406 ; Select special move
DIBUTTON_SOCCERO_MENU			 = $1E0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_SOCCERO_GLANCE		 = $1E004601 ; scroll view
DIBUTTON_SOCCERO_SUBSTITUTE		 = $1E004407 ; Substitute one player for another
DIBUTTON_SOCCERO_SHOOTLOW		 = $1E004408 ; Shoot the ball low
DIBUTTON_SOCCERO_SHOOTHIGH		 = $1E004409 ; Shoot the ball high
DIBUTTON_SOCCERO_PASSTHRU		 = $1E00440A ; Make a thru pass
DIBUTTON_SOCCERO_SPRINT 		 = $1E00440B ; Sprint / turbo boost
DIBUTTON_SOCCERO_CONTROL		 = $1E00440C ; Obtain control of the ball
DIBUTTON_SOCCERO_HEAD			 = $1E00440D ; Attempt to head the ball
DIBUTTON_SOCCERO_LEFT_LINK		 = $1E00C4E4 ; Fallback sidestep left button
DIBUTTON_SOCCERO_RIGHT_LINK		 = $1E00C4EC ; Fallback sidestep right button
DIBUTTON_SOCCERO_FORWARD_LINK		 = $1E0144E0 ; Fallback move forward button
DIBUTTON_SOCCERO_BACK_LINK		 = $1E0144E8 ; Fallback move back button
DIBUTTON_SOCCERO_DEVICE 		 = $1E0044FE ; Show input device and controls
DIBUTTON_SOCCERO_PAUSE			 = $1E0044FC ; Start / Pause / Restart game

;--- Sports - Soccer - Defense
;Defense       ---
DIVIRTUAL_SPORTS_SOCCER_DEFENSE 	 = $1F000000
DIAXIS_SOCCERD_LATERAL			 = $1F008201 ; Move / Aim: left / right
DIAXIS_SOCCERD_MOVE			 = $1F010202 ; Move / Aim: up / down
DIBUTTON_SOCCERD_BLOCK			 = $1F000401 ; Attempt to block shot
DIBUTTON_SOCCERD_STEAL			 = $1F000402 ; Attempt to steal ball
DIBUTTON_SOCCERD_FAKE			 = $1F000403 ; Fake a block or a steal
DIBUTTON_SOCCERD_PLAYER 		 = $1F000404 ; Select next player
DIBUTTON_SOCCERD_SPECIAL		 = $1F000405 ; Apply special move
DIBUTTON_SOCCERD_SELECT 		 = $1F000406 ; Select special move
DIBUTTON_SOCCERD_SLIDE			 = $1F000407 ; Attempt a slide tackle
DIBUTTON_SOCCERD_MENU			 = $1F0004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_SOCCERD_GLANCE		 = $1F004601 ; scroll view
DIBUTTON_SOCCERD_FOUL			 = $1F004408 ; Initiate a foul / hard-foul
DIBUTTON_SOCCERD_HEAD			 = $1F004409 ; Attempt a Header
DIBUTTON_SOCCERD_CLEAR			 = $1F00440A ; Attempt to clear the ball down the field
DIBUTTON_SOCCERD_GOALIECHARGE		 = $1F00440B ; Make the goalie charge out of the box
DIBUTTON_SOCCERD_SUBSTITUTE		 = $1F00440C ; Substitute one player for another
DIBUTTON_SOCCERD_LEFT_LINK		 = $1F00C4E4 ; Fallback sidestep left button
DIBUTTON_SOCCERD_RIGHT_LINK		 = $1F00C4EC ; Fallback sidestep right button
DIBUTTON_SOCCERD_FORWARD_LINK		 = $1F0144E0 ; Fallback move forward button
DIBUTTON_SOCCERD_BACK_LINK		 = $1F0144E8 ; Fallback move back button
DIBUTTON_SOCCERD_DEVICE 		 = $1F0044FE ; Show input device and controls
DIBUTTON_SOCCERD_PAUSE			 = $1F0044FC ; Start / Pause / Restart game

;--- Sports - Racquet
;Tennis - Table-Tennis - Squash   ---
DIVIRTUAL_SPORTS_RACQUET		 = $20000000
DIAXIS_RACQUET_LATERAL			 = $20008201 ; Move / Aim: left / right
DIAXIS_RACQUET_MOVE			 = $20010202 ; Move / Aim: up / down
DIBUTTON_RACQUET_SWING			 = $20000401 ; Swing racquet
DIBUTTON_RACQUET_BACKSWING		 = $20000402 ; Swing backhand
DIBUTTON_RACQUET_SMASH			 = $20000403 ; Smash shot
DIBUTTON_RACQUET_SPECIAL		 = $20000404 ; Special shot
DIBUTTON_RACQUET_SELECT 		 = $20000405 ; Select special shot
DIBUTTON_RACQUET_MENU			 = $200004FD ; Show menu options

;--- Priority 2 controls                            ---
DIHATSWITCH_RACQUET_GLANCE		 = $20004601 ; scroll view
DIBUTTON_RACQUET_TIMEOUT		 = $20004406 ; Call for time out
DIBUTTON_RACQUET_SUBSTITUTE		 = $20004407 ; Substitute one player for another
DIBUTTON_RACQUET_LEFT_LINK		 = $2000C4E4 ; Fallback sidestep left button
DIBUTTON_RACQUET_RIGHT_LINK		 = $2000C4EC ; Fallback sidestep right button
DIBUTTON_RACQUET_FORWARD_LINK		 = $200144E0 ; Fallback move forward button
DIBUTTON_RACQUET_BACK_LINK		 = $200144E8 ; Fallback move back button
DIBUTTON_RACQUET_DEVICE 		 = $200044FE ; Show input device and controls
DIBUTTON_RACQUET_PAUSE			 = $200044FC ; Start / Pause / Restart game

DIVIRTUAL_ARCADE_SIDE2SIDE		 = $21000000
DIAXIS_ARCADES_LATERAL			 = $21008201 ; left / right
DIAXIS_ARCADES_MOVE			 = $21010202 ; up / down
DIBUTTON_ARCADES_THROW			 = $21000401 ; throw object
DIBUTTON_ARCADES_CARRY			 = $21000402 ; carry object
DIBUTTON_ARCADES_ATTACK 		 = $21000403 ; attack
DIBUTTON_ARCADES_SPECIAL		 = $21000404 ; apply special move
DIBUTTON_ARCADES_SELECT 		 = $21000405 ; select special move
DIBUTTON_ARCADES_MENU			 = $210004FD ; Show menu options

DIHATSWITCH_ARCADES_VIEW		 = $21004601 ; scroll view left / right / up / down
DIBUTTON_ARCADES_LEFT_LINK		 = $2100C4E4 ; Fallback sidestep left button
DIBUTTON_ARCADES_RIGHT_LINK		 = $2100C4EC ; Fallback sidestep right button
DIBUTTON_ARCADES_FORWARD_LINK		 = $210144E0 ; Fallback move forward button
DIBUTTON_ARCADES_BACK_LINK		 = $210144E8 ; Fallback move back button
DIBUTTON_ARCADES_VIEW_UP_LINK		 = $2107C4E0 ; Fallback scroll view up button
DIBUTTON_ARCADES_VIEW_DOWN_LINK 	 = $2107C4E8 ; Fallback scroll view down button
DIBUTTON_ARCADES_VIEW_LEFT_LINK 	 = $2107C4E4 ; Fallback scroll view left button
DIBUTTON_ARCADES_VIEW_RIGHT_LINK	 = $2107C4EC ; Fallback scroll view right button
DIBUTTON_ARCADES_DEVICE 		 = $210044FE ; Show input device and controls
DIBUTTON_ARCADES_PAUSE			 = $210044FC ; Start / Pause / Restart game

DIVIRTUAL_ARCADE_PLATFORM		 = $22000000
DIAXIS_ARCADEP_LATERAL			 = $22008201 ; Left / right
DIAXIS_ARCADEP_MOVE			 = $22010202 ; Up / down
DIBUTTON_ARCADEP_JUMP			 = $22000401 ; Jump
DIBUTTON_ARCADEP_FIRE			 = $22000402 ; Fire
DIBUTTON_ARCADEP_CROUCH 		 = $22000403 ; Crouch
DIBUTTON_ARCADEP_SPECIAL		 = $22000404 ; Apply special move
DIBUTTON_ARCADEP_SELECT 		 = $22000405 ; Select special move
DIBUTTON_ARCADEP_MENU			 = $220004FD ; Show menu options

DIHATSWITCH_ARCADEP_VIEW		 = $22004601 ; Scroll view
DIBUTTON_ARCADEP_FIRESECONDARY		 = $22004406 ; Alternative fire button
DIBUTTON_ARCADEP_LEFT_LINK		 = $2200C4E4 ; Fallback sidestep left button
DIBUTTON_ARCADEP_RIGHT_LINK		 = $2200C4EC ; Fallback sidestep right button
DIBUTTON_ARCADEP_FORWARD_LINK		 = $220144E0 ; Fallback move forward button
DIBUTTON_ARCADEP_BACK_LINK		 = $220144E8 ; Fallback move back button
DIBUTTON_ARCADEP_VIEW_UP_LINK		 = $2207C4E0 ; Fallback scroll view up button
DIBUTTON_ARCADEP_VIEW_DOWN_LINK 	 = $2207C4E8 ; Fallback scroll view down button
DIBUTTON_ARCADEP_VIEW_LEFT_LINK 	 = $2207C4E4 ; Fallback scroll view left button
DIBUTTON_ARCADEP_VIEW_RIGHT_LINK	 = $2207C4EC ; Fallback scroll view right button
DIBUTTON_ARCADEP_DEVICE 		 = $220044FE ; Show input device and controls
DIBUTTON_ARCADEP_PAUSE			 = $220044FC ; Start / Pause / Restart game

DIVIRTUAL_CAD_2DCONTROL 		 = $23000000
DIAXIS_2DCONTROL_LATERAL		 = $23008201 ; Move view left / right
DIAXIS_2DCONTROL_MOVE			 = $23010202 ; Move view up / down
DIAXIS_2DCONTROL_INOUT			 = $23018203 ; Zoom - in / out
DIBUTTON_2DCONTROL_SELECT		 = $23000401 ; Select Object
DIBUTTON_2DCONTROL_SPECIAL1		 = $23000402 ; Do first special operation
DIBUTTON_2DCONTROL_SPECIAL		 = $23000403 ; Select special operation
DIBUTTON_2DCONTROL_SPECIAL2		 = $23000404 ; Do second special operation
DIBUTTON_2DCONTROL_MENU 		 = $230004FD ; Show menu options

DIHATSWITCH_2DCONTROL_HATSWITCH 	 = $23004601 ; Hat switch
DIAXIS_2DCONTROL_ROTATEZ		 = $23024204 ; Rotate view clockwise / counterclockwise
DIBUTTON_2DCONTROL_DISPLAY		 = $23004405 ; Shows next on-screenDIsplay options
DIBUTTON_2DCONTROL_DEVICE		 = $230044FE ; Show input device and controls
DIBUTTON_2DCONTROL_PAUSE		 = $230044FC ; Start / Pause / Restart game

DIVIRTUAL_CAD_3DCONTROL 		 = $24000000
DIAXIS_3DCONTROL_LATERAL		 = $24008201 ; Move view left / right
DIAXIS_3DCONTROL_MOVE			 = $24010202 ; Move view up / down
DIAXIS_3DCONTROL_INOUT			 = $24018203 ; Zoom - in / out
DIBUTTON_3DCONTROL_SELECT		 = $24000401 ; Select Object
DIBUTTON_3DCONTROL_SPECIAL1		 = $24000402 ; Do first special operation
DIBUTTON_3DCONTROL_SPECIAL		 = $24000403 ; Select special operation
DIBUTTON_3DCONTROL_SPECIAL2		 = $24000404 ; Do second special operation
DIBUTTON_3DCONTROL_MENU 		 = $240004FD ; Show menu options

DIHATSWITCH_3DCONTROL_HATSWITCH 	 = $24004601 ; Hat switch
DIAXIS_3DCONTROL_ROTATEX		 = $24034204 ; Rotate view forward or up / backward or down
DIAXIS_3DCONTROL_ROTATEY		 = $2402C205 ; Rotate view clockwise / counterclockwise
DIAXIS_3DCONTROL_ROTATEZ		 = $24024206 ; Rotate view left / right
DIBUTTON_3DCONTROL_DISPLAY		 = $24004405 ; Show next on-screenDIsplay options
DIBUTTON_3DCONTROL_DEVICE		 = $240044FE ; Show input device and controls
DIBUTTON_3DCONTROL_PAUSE		 = $240044FC ; Start / Pause / Restart game

DIVIRTUAL_CAD_FLYBY			 = $25000000
DIAXIS_CADF_LATERAL			 = $25008201 ; move view left / right
DIAXIS_CADF_MOVE			 = $25010202 ; move view up / down
DIAXIS_CADF_INOUT			 = $25018203 ; in / out
DIBUTTON_CADF_SELECT			 = $25000401 ; Select Object
DIBUTTON_CADF_SPECIAL1			 = $25000402 ; do first special operation
DIBUTTON_CADF_SPECIAL			 = $25000403 ; Select special operation
DIBUTTON_CADF_SPECIAL2			 = $25000404 ; do second special operation
DIBUTTON_CADF_MENU			 = $250004FD ; Show menu options

DIHATSWITCH_CADF_HATSWITCH		 = $25004601 ; Hat switch
DIAXIS_CADF_ROTATEX			 = $25034204 ; Rotate view forward or up / backward or down
DIAXIS_CADF_ROTATEY			 = $2502C205 ; Rotate view clockwise / counterclockwise
DIAXIS_CADF_ROTATEZ			 = $25024206 ; Rotate view left / right
DIBUTTON_CADF_DISPLAY			 = $25004405 ; shows next on-screenDIsplay options
DIBUTTON_CADF_DEVICE			 = $250044FE ; Show input device and controls
DIBUTTON_CADF_PAUSE			 = $250044FC ; Start / Pause / Restart game

DIVIRTUAL_CAD_MODEL			 = $26000000
DIAXIS_CADM_LATERAL			 = $26008201 ; move view left / right
DIAXIS_CADM_MOVE			 = $26010202 ; move view up / down
DIAXIS_CADM_INOUT			 = $26018203 ; in / out
DIBUTTON_CADM_SELECT			 = $26000401 ; Select Object
DIBUTTON_CADM_SPECIAL1			 = $26000402 ; do first special operation
DIBUTTON_CADM_SPECIAL			 = $26000403 ; Select special operation
DIBUTTON_CADM_SPECIAL2			 = $26000404 ; do second special operation
DIBUTTON_CADM_MENU			 = $260004FD ; Show menu options

DIHATSWITCH_CADM_HATSWITCH		 = $26004601 ; Hat switch
DIAXIS_CADM_ROTATEX			 = $26034204 ; Rotate view forward or up / backward or down
DIAXIS_CADM_ROTATEY			 = $2602C205 ; Rotate view clockwise / counterclockwise
DIAXIS_CADM_ROTATEZ			 = $26024206 ; Rotate view left / right
DIBUTTON_CADM_DISPLAY			 = $26004405 ; shows next on-screenDIsplay options
DIBUTTON_CADM_DEVICE			 = $260044FE ; Show input device and controls
DIBUTTON_CADM_PAUSE			 = $260044FC ; Start / Pause / Restart game

DIVIRTUAL_REMOTE_CONTROL		 = $27000000
DIAXIS_REMOTE_SLIDER			 = $27050201 ; Slider for adjustment: volume / color / bass / etc
DIBUTTON_REMOTE_MUTE			 = $27000401 ; Set volume on current device to zero
DIBUTTON_REMOTE_SELECT			 = $27000402 ; Next/previous: channel/ track / chapter / picture / station
DIBUTTON_REMOTE_PLAY			 = $27002403 ; Start or pause entertainment on current device
DIBUTTON_REMOTE_CUE			 = $27002404 ; Move through current media
DIBUTTON_REMOTE_REVIEW			 = $27002405 ; Move through current media
DIBUTTON_REMOTE_CHANGE			 = $27002406 ; Select next device
DIBUTTON_REMOTE_RECORD			 = $27002407 ; Start recording the current media
DIBUTTON_REMOTE_MENU			 = $270004FD ; Show menu options

DIAXIS_REMOTE_SLIDER2			 = $27054202 ; Slider for adjustment: volume
DIBUTTON_REMOTE_TV			 = $27005C08 ; Select TV
DIBUTTON_REMOTE_CABLE			 = $27005C09 ; Select cable box
DIBUTTON_REMOTE_CD			 = $27005C0A ; Select CD player
DIBUTTON_REMOTE_VCR			 = $27005C0B ; Select VCR
DIBUTTON_REMOTE_TUNER			 = $27005C0C ; Select tuner
DIBUTTON_REMOTE_DVD			 = $27005C0D ; Select DVD player
DIBUTTON_REMOTE_ADJUST			 = $27005C0E ; Enter device adjustment menu
DIBUTTON_REMOTE_DIGIT0			 = $2700540F ;DIgit 0
DIBUTTON_REMOTE_DIGIT1			 = $27005410 ;DIgit 1
DIBUTTON_REMOTE_DIGIT2			 = $27005411 ;DIgit 2
DIBUTTON_REMOTE_DIGIT3			 = $27005412 ;DIgit 3
DIBUTTON_REMOTE_DIGIT4			 = $27005413 ;DIgit 4
DIBUTTON_REMOTE_DIGIT5			 = $27005414 ;DIgit 5
DIBUTTON_REMOTE_DIGIT6			 = $27005415 ;DIgit 6
DIBUTTON_REMOTE_DIGIT7			 = $27005416 ;DIgit 7
DIBUTTON_REMOTE_DIGIT8			 = $27005417 ;DIgit 8
DIBUTTON_REMOTE_DIGIT9			 = $27005418 ;DIgit 9
DIBUTTON_REMOTE_DEVICE			 = $270044FE ; Show input device and controls
DIBUTTON_REMOTE_PAUSE			 = $270044FC ; Start / Pause / Restart game

DIVIRTUAL_BROWSER_CONTROL		 = $28000000
DIAXIS_BROWSER_LATERAL			 = $28008201 ; Move on screen pointer
DIAXIS_BROWSER_MOVE			 = $28010202 ; Move on screen pointer
DIBUTTON_BROWSER_SELECT 		 = $28000401 ; Select current item
DIAXIS_BROWSER_VIEW			 = $28018203 ; Move view up/down
DIBUTTON_BROWSER_REFRESH		 = $28000402 ; Refresh
DIBUTTON_BROWSER_MENU			 = $280004FD ; Show menu options

DIBUTTON_BROWSER_SEARCH 		 = $28004403 ; Use search tool
DIBUTTON_BROWSER_STOP			 = $28004404 ; Cease current update
DIBUTTON_BROWSER_HOME			 = $28004405 ; GoDIrectly to "home" location
DIBUTTON_BROWSER_FAVORITES		 = $28004406 ; Mark current site as favorite
DIBUTTON_BROWSER_NEXT			 = $28004407 ; Select Next page
DIBUTTON_BROWSER_PREVIOUS		 = $28004408 ; Select Previous page
DIBUTTON_BROWSER_HISTORY		 = $28004409 ; Show/Hide History
DIBUTTON_BROWSER_PRINT			 = $2800440A ; Print current page
DIBUTTON_BROWSER_DEVICE 		 = $280044FE ; Show input device and controls
DIBUTTON_BROWSER_PAUSE			 = $280044FC ; Start / Pause / Restart game

DIVIRTUAL_DRIVING_MECHA 		 = $29000000
DIAXIS_MECHA_STEER			 = $29008201 ; Turns mecha left/right
DIAXIS_MECHA_TORSO			 = $29010202 ; Tilts torso forward/backward
DIAXIS_MECHA_ROTATE			 = $29020203 ; Turns torso left/right
DIAXIS_MECHA_THROTTLE			 = $29038204 ; Engine Speed
DIBUTTON_MECHA_FIRE			 = $29000401 ; Fire
DIBUTTON_MECHA_WEAPONS			 = $29000402 ; Select next weapon group
DIBUTTON_MECHA_TARGET			 = $29000403 ; Select closest enemy available target
DIBUTTON_MECHA_REVERSE			 = $29000404 ; Toggles throttle in/out of reverse
DIBUTTON_MECHA_ZOOM			 = $29000405 ; Zoom in/out targeting reticule
DIBUTTON_MECHA_JUMP			 = $29000406 ; Fires jump jets
DIBUTTON_MECHA_MENU			 = $290004FD ; Show menu options

DIBUTTON_MECHA_CENTER			 = $29004407 ; Center torso to legs
DIHATSWITCH_MECHA_GLANCE		 = $29004601 ; Look around
DIBUTTON_MECHA_VIEW			 = $29004408 ; Cycle through view options
DIBUTTON_MECHA_FIRESECONDARY		 = $29004409 ; Alternative fire button
DIBUTTON_MECHA_LEFT_LINK		 = $2900C4E4 ; Fallback steer left button
DIBUTTON_MECHA_RIGHT_LINK		 = $2900C4EC ; Fallback steer right button
DIBUTTON_MECHA_FORWARD_LINK		 = $290144E0 ; Fallback tilt torso forward button
DIBUTTON_MECHA_BACK_LINK		 = $290144E8 ; Fallback tilt toroso backward button
DIBUTTON_MECHA_ROTATE_LEFT_LINK 	 = $290244E4 ; Fallback rotate toroso right button
DIBUTTON_MECHA_ROTATE_RIGHT_LINK	 = $290244EC ; Fallback rotate torso left button
DIBUTTON_MECHA_FASTER_LINK		 = $2903C4E0 ; Fallback increase engine speed
DIBUTTON_MECHA_SLOWER_LINK		 = $2903C4E8 ; Fallback decrease engine speed
DIBUTTON_MECHA_DEVICE			 = $290044FE ; Show input device and controls
DIBUTTON_MECHA_PAUSE			 = $290044FC ; Start / Pause / Restart game

DIAXIS_ANY_X_1 = $FF00C201
DIAXIS_ANY_X_2 = $FF00C202
DIAXIS_ANY_Y_1 = $FF014201
DIAXIS_ANY_Y_2 = $FF014202
DIAXIS_ANY_Z_1 = $FF01C201
DIAXIS_ANY_Z_2 = $FF01C202
DIAXIS_ANY_R_1 = $FF024201
DIAXIS_ANY_R_2 = $FF024202
DIAXIS_ANY_U_1 = $FF02C201
DIAXIS_ANY_U_2 = $FF02C202
DIAXIS_ANY_V_1 = $FF034201
DIAXIS_ANY_V_2 = $FF034202
DIAXIS_ANY_A_1 = $FF03C201
DIAXIS_ANY_A_2 = $FF03C202
DIAXIS_ANY_B_1 = $FF044201
DIAXIS_ANY_B_2 = $FF044202
DIAXIS_ANY_C_1 = $FF04C201
DIAXIS_ANY_C_2 = $FF04C202
DIAXIS_ANY_S_1 = $FF054201
DIAXIS_ANY_S_2 = $FF054202

DIAXIS_ANY_1 = $FF004201
DIAXIS_ANY_2 = $FF004202
DIAXIS_ANY_3 = $FF004203
DIAXIS_ANY_4 = $FF004204

DIPOV_ANY_1 = $FF004601
DIPOV_ANY_2 = $FF004602
DIPOV_ANY_3 = $FF004603
DIPOV_ANY_4 = $FF004604

JOY_PASSDRIVERDATA = $10000000
JOY_HWS_ISHEADTRACKER = $2000000
JOY_HWS_ISGAMEPORTDRIVER = $4000000
JOY_HWS_ISANALOGPORTDRIVER = $8000000
JOY_HWS_AUTOLOAD = $10000000
JOY_HWS_NODEVNODE = $20000000
JOY_HWS_ISGAMEPORTBUS = $80000000
JOY_HWS_GAMEPORTBUSBUSY = 1
JOY_US_VOLATILE = 8
JOY_OEMPOLL_PASSDRIVERDATA = 7
